Использование моделей идентификации против пользовательских методов
Поэтому мне нужно добавить аутентификацию пользователя в веб-приложение, которое я создаю - Web Forms, а не MVC - и которое я пытаюсь узнать о предоставленных / разработанных Microsoft моделях идентификации с пользователем, а также с ролями или утверждениями - я предпочитаю роли, но похоже, MS хочет, чтобы все перешли на претензии. Хотя я понимаю, что у него есть встроенные возможности, мне было интересно, проще ли запрошить и хэшировать пароль, дать пользователям программную "роль" и протестировать роль пользователя при загрузке страниц. Или я действительно должен попытаться сделать это по-Microsoft? Возможно, я просто недостаточно хорошо понимаю структуру MS.
Несколько вопросов:
- Где хранятся пользователи, роли и т. Д.? Я считаю, что они размещены в пользовательской базе данных, но где?
- Легко ли перенести эту базу данных в производственную базу данных?
- Как я могу редактировать роли, чтобы сделать их специфичными для моего приложения? По всей видимости, MS покончила с инструментом настройки, который упростил этот процесс. Я могу загрузить более старую версию Visual Studio для доступа к инструменту, но это кажется довольно громоздким.
- Большая. Я предполагаю, что если я создам свою собственную автономную интегрированную систему авторизации, я не смогу использовать webconfig для авторизации доступа?
Заранее спасибо.
1 ответ
Места, где хранятся ваши пользователи / роли / заявки, настраиваются. Реализация Entity Framework по умолчанию хранит данные в базе данных SQL. Если вы запустите его локально, с шаблоном по умолчанию он создаст базу данных LocalDB. Вы можете настроить его для использования существующей базы данных SQL Server.
Существуют проекты, которые позволяют сохранять эти данные в RavenDb, MongoDb, AzureTables, MySql; Я даже видел обсуждение, чтобы web.config был определением одного администратора.Да. Развертывание в рабочей среде аналогично развертыванию обычной базы данных.
MS избавился от того инструмента, о котором вы говорите. Даже если вы загрузите его, он не будет работать с новым способом. Ваши варианты: написать управление ролями самостоятельно, перейти непосредственно в БД и создать там роли (если это одноразовая работа). Или используйте инструмент Brodent Allen's IdentityManager (будьте осторожны, пока он не встраивается в другие приложения).
В Identity Framework вы не используете web.config для настройки чего-либо. Помимо строки подключения. Вы можете построить свою собственную реализацию
UserManager
который будет принимать параметры конфигурации отweb.config
,
Относительно ролей и претензий. В Identity Framework роли являются типом заявки. Не увлекайтесь этим слишком сильно, это просто разные названия для похожих вещей. Я настоятельно рекомендую изучить "MS-way" и заставить работать Identity (вам не нужно использовать заявки, если они вам не нужны, роли будут работать так же, как раньше), и забыть о MembershipProvider как о кошмарном наследстве.