Учетные данные проверки подлинности форм

Visual Studio 2010

Обновлен: Ноябрь 2007

Учетные данные проверки подлинности форм, используемые для проверки пользователей при входе, могут храниться во внешнем источнике данных или в файле конфигурации приложения.

da0adyye.alert_note(ru-ru,VS.100).gifПримечание.

В приложениях с проверкой подлинности с помощью форм предпочтительным методом хранения учетных данных пользователей и управления ими является членство ASP.NET. Дополнительные сведения см. в разделе Управление пользователями путем объединения их в группы.

При использовании проверки подлинности с помощью форм пользователей можно проверять с помощью пар пользователь/пароль в разделе credentials файла конфигурации веб-узла. С помощью метода Authenticate можно сравнить учетные данные, полученные от пользователя, со списком пар пользователь/пароль в разделе credentials, чтобы определить, следует ли разрешить доступ. В приведенном ниже примере пользователи под именами «Kim» и «John» могут войти в систему, если предоставят правильный пароль.

<credentials passwordFormat="SHA1" >
    <user name="Kim"
          password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
    <user name="John" 
          password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>

Пары учетных данных в этом примере зашифрованы с помощью алгоритма хэширования паролей SHA1. Атрибут PasswordFormat является обязательным. Значения этого свойства перечислены в следующей таблице.

Значение

Описание

Clear

Пароли хранятся в открытом тексте. Пароль пользователя сравнивается непосредственно с этим значением без дальнейших преобразований.

MD5

Пароли хранятся с использованием хэш-алгоритма Message Digest 5 (MD5). Чтобы осуществить проверку учетных данных, пароль пользователя хэшируется с использованием алгоритма MD5 и сравнивается с сохраненным значением. При использовании этого значения пароль в открытом тексте никогда не хранится и не сравнивается. Эффективность этого алгоритма выше, чем у алгоритма SHA1.

SHA1

Пароли хранятся с использованием хэш-алгоритма SHA1. Чтобы осуществить проверку учетных данных, пароль пользователя хэшируется с использованием алгоритма SHA1 и сравнивается с сохраненным значением. Пароль никогда не хранится в открытом тексте. Используйте этот алгоритм, чтобы обеспечить уровень безопасности, превышающий уровень безопасности алгоритма MD5.

.NET Framework включает классы и методы, которые облегчают создание хэш-кодов для значений для постоянного хранения с помощью программного кода. Одним из классов, которые удобно использовать при программировании этой задачи, является класс FormsAuthentication. Его метод HashPasswordForStoringInConfigFile может выполнять хэширование. Для более точного контроля можно также использовать классы System.Security.Cryptography.

Хэшированные пароли, которые хранятся в текстовом файле, не могут быть использованы для повторного порождения исходного пароля, но они потенциально уязвимы при словарной атаке. Такой тип атаки означает, что атакующий после получения доступа к файлу с паролями пытается расшифровать пароли, используя программное обеспечение для многократного хэширования всех слов в словаре большого объема и сравнения создаваемых хэш-кодов с хранящимися в файле. При хранении хэшированных паролей в любой форме необходимо требовать, чтобы пользователи не использовали в качестве паролей обычные слова языка и вставляли в пароли цифры и знаки, отличные от буквенно-цифровых, с целью предотвратить словарные атаки. Кроме того, управление учетными данными можно сделать проще, сохранив эти данные с использованием членства ASP.NET. Дополнительные сведения см. в разделе Управление пользователями путем объединения их в группы.

Показ: