Поделиться через


SqlMembershipProvider.PasswordFormat Свойство

Определение

Возвращает значение, указывающее формат хранения паролей в базе данных членства SQL Server.

public:
 virtual property System::Web::Security::MembershipPasswordFormat PasswordFormat { System::Web::Security::MembershipPasswordFormat get(); };
public override System.Web.Security.MembershipPasswordFormat PasswordFormat { get; }
member this.PasswordFormat : System.Web.Security.MembershipPasswordFormat
Public Overrides ReadOnly Property PasswordFormat As MembershipPasswordFormat

Значение свойства

Одно из значений MembershipPasswordFormat, указывающее формат хранения паролей в базе данных SQL Server.

Примеры

В следующем примере кода показан элемент членства в system.web разделе файла Web.config для приложения ASP.NET. Он указывает экземпляр приложения SqlMembershipProvider и задает для него формат Hashedпароля .

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">  
  <providers>  
    <add name="SqlProvider"  
      type="System.Web.Security.SqlMembershipProvider"  
      connectionStringName="SqlServices"  
      enablePasswordRetrieval="false"  
      enablePasswordReset="true"  
      requiresQuestionAndAnswer="true"  
      passwordFormat="Hashed"  
      applicationName="MyApplication" />  
  </providers>  
</membership>  

Комментарии

Используйте Hashed только и EncryptedClear не являются безопасными. Hashed хэширования паролей используются односторонний хэш-алгоритм и случайно сформированное значение соли при хранении в базе данных. Когда пароль проверяется, он хэшируется с начальным значением из базы данных. Хэшированные пароли нельзя извлечь. Encrypted пароли не считаются безопасными, так как нарушение безопасности, показывающее содержимое базы данных, также может открыть ключ шифрования. Это означает, что зашифрованные пароли могут быть расшифрованы и предоставлены.

Значение PasswordFormat указывается в разделе providers файла Web.config для приложения ASP.NET.

Encrypted Пароли и Hashed шифруются или хэшируются по умолчанию на основе сведений, предоставленных в элементе machineKey в конфигурации. Обратите внимание, что если указать значение для атрибута 3DES или значение не указано, хэшированные пароли будут хэшироваться с помощью алгоритма SHA1 .validation

Настраиваемый хэш-алгоритм можно определить с помощью hashAlgorithmType атрибута элемента конфигурации membership Element (ASP.NET Settings Schema). Если выбрано шифрование, шифрование паролей по умолчанию использует AES. Вы можете изменить алгоритм шифрования, задав decryption атрибут элемента конфигурации machineKey . При шифровании паролей необходимо указать явное значение атрибута decryptionKey в элементе machineKey . Значение AutoGenerate по умолчанию атрибута decryptionKey не поддерживается при использовании зашифрованных паролей с ASP.NET членства.

Из-за проблем с SHA1 корпорация Майкрософт рекомендует использовать модель безопасности на основе SHA256 или более высокого уровня.

Применяется к

См. также раздел