Аутентификация на сайте (membership provider)
Такой вопрос.Используя membership provider пытаюсь пройти аутентификацию на своей страничке:
{.....}
Валидация не проходит.Вот кусок web.config:
<add name="default" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=[path]\base.mdf;Integrated Security=SSPI;"/>
</connectionStrings>
..............
<authentication mode="Forms" />
<membership defaultProvider="SqlMembershipProvider1">
<providers>
<clear/>
<add name="SqlMembershipProvider1"
minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="0"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
enablePasswordReset="false"
enablePasswordRetrieval="false"
connectionStringName="default"
type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>
Пользователь с таким паролем естественно существует, почему не проходит аутентификация?
Заранее спасибо.
Проверь утиллитой администрирования сайта.
Я бы удалил пользователя и создал его заново.
Еще бы неплохо указать у провайдера свойство passwordFormat значением Clear - в БД можно будет посмотреть чего с паролем произошло.
hardcase, сенк за passwordFormat, так действительно удобней :)
Заранее спасибо.
А ведь хотел спросить про этот флажок.
Active пользователи могут представляться системе. Это как отключение/включение аккаунта.
Взгляните на атрибут type в тегах <add /> списков провайдеров. Это имя класса, наследующего MembershipProvider (для аккаунтов) или RoleProvider (для ролей), попробуйте набрать его в MSDN. Вот члены SqlMembershipProvider.
Clear имеет смысл ставить когда приложение отлаживается. На реальной системе из соображений безопасности рекомендуется использовать дриге форматы: Hashed - пароль хэширован и не поддается восстановлению, зато можно его сбрасывать, или Encrypted - пароль зашифрован симметричным методом шифрования, в БД просмотреть не получится, зато можно восстановить.
Для этого уже существуют различные реализации механизма членства - MembershipProvider-ы c представлением пользователей в виде экземпляра MembershipUser.
http://www.bgshop.ru/description.aspx?product_no=9073741
Или похожие книги.
В них содержится исчерпывающая информация.
В кратце. MembershipProvider - это унифицированный интерфейс для работы с механизмами членства пользователей в .net. Изначально в .net можно работать с аутентификацией пользователей через Sql Server-ную базу (aspregsql.exe позволяет создать всю инфраструктуру в базе данных) пример конфигурации этого провайдера есть в MSDN по запросу SqlMembershipProvider, а также аутентификация возможна через ActiveDirectory (для веб-приложений, ориентированных на корпоративную среду организации).
А здесь - как работать с классом Membership в коде http://msdn.microsoft.com/ru-ru/library/dazakw52