【发布时间】:2015-12-20 21:03:21
【问题描述】:
我正在寻找实现“记住我”复选框的正确方法,但直到现在我还没有找到好的简单解决方案,所以我将代码片段添加在一起。
您能否指导我正确执行此操作的步骤? 我认为 2015 年会是直截了当的..
这些是我做的步骤(我觉得有点笨拙)
- 用户尝试登录-如果他输入了正确的用户名和密码,我检查是否存在
cookie["rememberMe"], -
如果不是 - 我正在创建一个新 cookie 并将其命名为“rememberMe”
var token = Guid.NewGuid(); HttpCookie rememberMe = new HttpCookie("rememberMe"); rememberMe["username"] = username; BL.SetCookieToken(username, token); rememberMe["token"] = token.ToString();SetCookieToken正在将新的 cookie 令牌写入 db- 在 users 表中有一个列“cookieToken”。 -
当用户重新打开浏览器时,在
pageload事件中 如果令牌匹配,应用程序会转到 db 并检查特定用户protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["rememberMe"] != null) { var username = Request.Cookies["rememberMe"]["username"]; var token = Request.Cookies["rememberMe"]["token"]; Guid cookieToken = BL.GetTokenByUserName(username); if (cookieToken.ToString() == token) { Response.Redirect("~/Pages/home.aspx"); } } }
我这样做对吗?
【问题讨论】:
标签: asp.net asp.net-mvc