Compartilhar via


SqlMembershipProvider.PasswordFormat Propriedade

Definição

Obtém um valor que indica o formato para armazenar as senhas no banco de dados de associação 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

Valor da propriedade

Um dos valores MembershipPasswordFormat que indica o formato para armazenar as senhas no banco de dados SQL Server.

Exemplos

O exemplo de código a seguir mostra o elemento de associação na system.web seção do arquivo Web.config para um aplicativo ASP.NET. Ele especifica a instância do aplicativo e define seu formato de SqlMembershipProvider senha como 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>  

Comentários

Use Hashed apenas Clear e Encrypted não são seguros. Hashed as senhas são hash usando um algoritmo de hash unidirecional e um valor de sal gerado aleatoriamente quando armazenado no banco de dados. Quando uma senha é validada, aplica-se um hash com o valor de sal no banco de dados para verificação. As senhas hash não podem ser recuperadas. Encrypted As senhas não são consideradas seguras, pois uma violação que revela o conteúdo do banco de dados também pode expor a chave de criptografia. Isso significa que suas senhas criptografadas podem ser descriptografadas e expostas.

O PasswordFormat valor é especificado na seção provedores do arquivo Web.config para o aplicativo ASP.NET.

Encrypted As senhas e Hashed são criptografadas ou com hash por padrão com base nas informações fornecidas no elemento machineKey em sua configuração. Observe que, se você especificar um valor de 3DES para o validation atributo ou se nenhum valor for especificado, as senhas com hash serão hashadas usando o SHA1 algoritmo .

Um algoritmo de hash personalizado pode ser definido usando o hashAlgorithmType atributo do elemento de configuração elemento de associação (esquema de configurações de ASP.NET). Se você escolher criptografia, a criptografia de senha padrão usará o AES. Você pode alterar o algoritmo de criptografia definindo o decryption atributo do elemento de configuração machineKey . Se você estiver criptografando senhas, deverá fornecer um valor explícito para o decryptionKey atributo no elemento machineKey . Não há suporte para o valor padrão de AutoGenerate para o decryptionKey atributo ao usar senhas criptografadas com associação ASP.NET.

Devido a problemas de colisão com o SHA1, a Microsoft recomenda um modelo de segurança baseado em SHA256 ou melhor.

Aplica-se a

Confira também