Recentemente, eu estava estudando o novo controle de login no asp.net 2.0 e descobri que os requisitos de segurança de senha padrão do sistema são relativamente altos, ou seja, "o comprimento mínimo da senha é 7, que deve conter os seguintes caracteres não alfanuméricos: 1. ", para Wang Zhan comum, não há necessidade (mesmo o windows2003sever não exige uma senha tão complexa por padrão). O método de modificação fornecido por alguns materiais de referência é modificá-lo em machine.config. Mas, a menos que você tenha direitos administrativos no host, não poderá modificá-lo. Portanto, ainda é recomendável modificá-lo no arquivo web.config.
O método é adicionar subtags ao nó <system.web> do web.config:
<associação>
<provedores>
<remove name="AspNetSqlMembershipProvider"/>
<adicionar nome="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Versão=2.0.0.0, Culture=neutro, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="falso"
enablePasswordReset = "verdadeiro"
requerQuestionAndAnswer="true"
nomedaaplicação="/"
requerUniqueEmail="falso"
passwordFormat = "Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
senhaAttemptWindow = "10"
senhaStrengthRegularExpression="" />
</provedores>
</membro>
Vamos explicar os principais atributos:
connectionStringName conexão com o banco de dados. Isso precisa ser definido em web.config
enablePasswordRetrieval Obtém um valor que indica se o provedor de associação atual está configurado para permitir que os usuários recuperem suas senhas.
enablePasswordReset Obtém um valor que indica se o provedor de associação atual está configurado para permitir que os usuários redefinam suas senhas.
requerQuestionAndAnswer Obtém um valor que indica se o provedor de associação padrão exige que os usuários respondam a uma pergunta de senha para redefinição e recuperação de senha.
applicationName obtém ou define o nome do aplicativo.
requerUniqueEmail Indica se o usuário deve fornecer um valor de endereço de e-mail exclusivo ao criar o usuário.
passwordFormat indica o formato no qual as senhas são armazenadas no armazenamento de dados de associação. Instruções detalhadas abaixo
maxInvalidPasswordAttempts Obtém o número de tentativas de senha inválida ou de resposta de senha inválida permitidas antes que a associação do usuário seja bloqueada.
minRequiredPasswordLength Obtém o comprimento mínimo necessário para uma senha.
minRequiredNonalphanumericCharacters Obtém o número mínimo de caracteres especiais que devem ser incluídos em uma senha válida.
passwordAttemptWindow Obtém o número máximo de tentativas de senha inválida ou de resposta de senha inválida permitidas antes que o usuário membro seja bloqueado, em minutos.
A propriedade de descrição detalhada de PasswordFormat indica o formato no qual as senhas são armazenadas. As senhas podem ser armazenadas nos formatos de senha clara, criptografada e com hash. As senhas limpas são armazenadas em texto não criptografado, o que melhora o desempenho de armazenamento e recuperação de senhas, mas é menos seguro e pode ser lido facilmente quando a segurança da fonte de dados é comprometida. As senhas criptografadas são criptografadas quando armazenadas e podem ser descriptografadas ao comparar ou recuperar senhas. Essas senhas exigem processamento adicional durante o armazenamento e a recuperação, mas são mais seguras e não podem ser facilmente recuperadas quando a segurança da fonte de dados está comprometida. Hashed As senhas são hash usando um algoritmo de hash unidirecional e um valor salt gerado aleatoriamente quando armazenadas no banco de dados. Quando uma senha é verificada, ela é criptografada com o valor salt no banco de dados para verificação. Não foi possível recuperar a senha com hash.