我在ASP.Net MVC页面中实现了两步验证,该页面使用Web Security执行以下逻辑:
1)当用户首次登录并在“登录”页面中单击“下一步”时,他将被验证 -
if (Membership.ValidateUser(model.UserName, model.Password))
{
......// Encrypt the password and storing it in a session
......// Then redirect to step 2 verification page...
}
然后他被重定向到第二步验证页面,在那里他将被要求输入安全Q.如果他弄错了,那么就会创建一个新的cookie(Cookie2), 并且用户使用 -
登录 .......//Decrypt the password
_webSecurity.Login(username, decryptedpassword, false)
然后他被重定向到他的主页。
2)下次当他尝试登录应用程序时,会检查第二步中创建的cookie(Cookie2)是否存在。如果它存在,那么他将直接重定向到主页,如果它不存在,则再次要求他输入安全Q.
因此,如果我们在此处看到实现,我实际上只有在第二步验证有效时才会将用户登录到应用程序中。为了实现这一点,我正在创建一个cookie并将密码存储在会话中。
如果我们能以更好的方式对此进行编码,任何人都可以告诉我吗?我猜我们可以在不使用会话和Cookie的情况下执行此操作。
欢迎任何想法/建议。
谢谢,
WH