0
我正在寻找正确的方式来实现“记住我”复选框,直到现在我没有找到好的&简单的解决方案,因此我已经将代码段加在一起。正确的方式实现记住我
你可以请直接指导我做正确的步骤吗? 我认为,在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
事件 应用进入数据库,并检查是否有特定的用户,如果令牌匹配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"); } } }
我做的是正确的办法?
是否有任何内置功能? –
在这里有一个相当不错的convo ... http://stackoverflow.com/questions/24904528/asp-net-mvc-remember-me有没有一个特定的“记住我”功能'内置'我是意识到(并不意味着它不存在),但有很多内置的功能可以帮助实现。 – kevindeleon