Pergunta

Eu implementou um provedor de associação personalizado. Eu também implementado meu costume AES encriptação / desencriptação substituindo o resumo EncryptPassword / DecryptPassword do MembershipProvider.

No entanto, quando eu disparar ValidateUser, a senha não é automaticamente convertido, estou faltando alguma coisa?

É suposto ser chamado automaticamente ou eu tenho que chamar esse método de meu código?

Foi útil?

Solução

Você precisa chamar suas rotinas de criptografia si mesmo.

Outras dicas

Você precisa incluir as chamadas para os seus métodos de encriptação / desencriptação, algo como deve fazer:

public override bool ValidateUser(string username, string password)
{
    string password=query to get the password from the db/users_list;

    return (CheckPassword(password, storedPassword));
}

private bool CheckPassword(string password, string dbpassword)
{
    string pwd1 = password;
    string pwd2 = dbpassword;

    pwd2 = UEncodePassword(dbpassword);

    if (pwd1 == pwd2) return true;

    return false;
}

private string UEncodePassword(string encodedPassword)
{
    string password = encodedPassword;
    password = Encoding.Unicode.GetString(DecryptPassword(Convert.FromBase64String(encodedPassword)));

    return password;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top