我尝试使用其他选项实现经典表单身份验证模式,使用用户名和一次性密码进行身份验证。
所以我有Login.aspx和LoginOTP.aspx
在LoginOTP中我使用response.redirect到Default.aspx问题是asp.net重定向到Login.aspx,因为它认为用户没有经过身份验证。
如何实现该业务用例呢?
答案 0 :(得分:2)
我假设您拥有相同的用户群,但有时您希望他们进行一次性登录(例如密码重置)以及其他时间只是正常登录?
如果是这样,对于OTP,一旦您验证了OTP,您就可以使用FormsAuthentication.SetAuthCookie()
方法将其登录,而无需验证其正常密码。 e.g。
FormsAuthentication.SetAuthCookie("userA", false);
在上面的示例中,用户使用用户名“userA”登录,false
是否是跨会话持久登录(例如,是否勾选“记住我”之类的内容)
FormsAuthentication.SetAuthCookie()
方法的文档可在此处找到:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.setauthcookie.aspx