SqlMembershipProvider.PasswordFormat Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.