我有一个包含4列的数据库表(email,token,tokenDate(DateTime),isOnline(bool))
我在ASP.NET MVC中尝试做的是有一个应用程序,用户转到这样的页面Home/Index?email=xxxxx@xxxxxxx.com
,当他们转到页面时,他们登录,现在我可以做到这一点他们转到页面是这样的:
isOnline
标记为真tokenDate
设置为DateTime.Now
token
并将其设置为令牌当有其他人(或同一个人)使用相同的电子邮件尝试转到页面时
isOnline
被标记为true
并且cookie不存在,并且它确实检查了数据库中的那个,如果无法启动它们,如果成功,则可以输入。我的问题是我想要创建什么令牌,以便原始用户仍然经过身份验证,因此如果他们关闭浏览器或转到其他页面,他们仍然可以转到他们认证的主页面?
答案 0 :(得分:1)
用户在文本框中转到此Home/Index?email=xxxxx@xxxxxxx.com
或用户类型电子邮件的页面
第1步:
DateTime.UtcNow
以便您可以稍后显示到当地时间
用户。 第2步:
现在,当用户转到Home/SomeOtherPage
或身份验证页面Home/Index?email=xxxxx@xxxxxxx.com
检查名称中是否存在cookie,如果存在,则从cookie获取电子邮件和令牌值,并检查数据库中的值,如果令牌与电子邮件匹配则用户通过身份验证。
Edit cookie并在cookie中设置另一个值,说明用户是否经过身份验证,因此下次用户访问时会检查经过身份验证的值,因为如果用户再次访问该页面,将无法再次访问数据库。
注意:
如果您可以在Cookie中设置电子邮件encrypt,那会更好。