ASP.NET Forms Authentication - Когда использовать? - PullRequest
2 голосов
/ 12 января 2011

Я не могу решить, должен ли я пойти для проверки подлинности с помощью форм?Аутентификация по формам часто используется для персонализации, когда контент настраивается для известного пользователя.У меня нет такого требования.У меня есть имена пользователей и пароли в БД, и мне нужно аутентифицировать пользователей по БД?Какова наилучшая рекомендуемая практика для достижения того же в ASP.NET 2.0?

Ответы [ 2 ]

3 голосов
/ 12 января 2011

Аутентификация с помощью форм используется для аутентификации, вы можете использовать информацию о членстве для настройки страниц, но вам не нужно.

1 голос
/ 12 января 2011

TL; DR: Класс FormsAuthenication не имеет ничего общего с паролями. Вы должны использовать его, чтобы пользователи заходили на ваш сайт. Для проверки паролей используйте класс Membership или собственную систему.


Из документации для FormsAuthentication класс:

Проверка подлинности с помощью форм позволяет пользователю и проверка пароля для веба приложения, которые не требуют Проверка подлинности Windows. С формами аутентификация, информация о пользователе хранятся во внешнем источнике данных, такие как база данных членства, или в файл конфигурации для приложение. Когда пользователь аутентифицируется, формирует аутентификацию поддерживает аутентификационный билет в печенье или в URL, чтобы аутентифицированному пользователю не нужно предоставлять учетные данные с каждым запросом.

Если вы посмотрите на определение класса для FormsAuthentication, вы увидите метод Authenticate . Документация гласит: " Проверяет имя пользователя и пароль по учетным данным, хранящимся в файле конфигурации приложения. " Вы не хотите использовать это , поскольку хотите хранить пользователей и пароли в базе данных, а не в файле конфигурации. Это единственный метод, связанный с паролями во всем классе FormsAuthentication.

Правильный способ выдачи заявки - это метод SetAuthCookie, который не принимает пароль . Так как / где вы проверяете пароль?

Ответ: Членство (или что-то нестандартное).

Членство в ASP.NET версии 2.0 функция обеспечивает безопасные учетные данные хранилище для пользователей приложения. Это также предоставляет API членства, который упрощает задачу проверки пользователя учетные данные при использовании с формами аутентификация. Поставщики членства абстрагировать базовый магазин, используемый для сохранить учетные данные пользователя.

Членство - большая тема, и вам действительно нужно потратить некоторое время на ее изучение и написание тестового приложения. Я прочитал бы по крайней мере первые три статьи из серии Multipart о членстве, ролях и профиле ASP.NET .

После того, как вы прочтете это, вы, вероятно, задаетесь вопросом, стоит ли вам писать своего собственного провайдера членства. Возможно, вы захотите взглянуть на некоторые ответы здесь, в SO, чтобы получить рекомендации по этому stackoverflow , или начать новый вопрос, когда он появится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...