【发布时间】:2017-11-15 04:07:00
【问题描述】:
我有一个包含 4 列的数据库表(email、token、tokenDate (DateTime)、isOnline (bool))
我在 ASP.NET MVC 中尝试做的是有一个应用程序,用户在该应用程序中转到这样的页面 Home/Index?email=xxxxx@xxxxxxx.com 并且当他们转到该页面时,他们正在登录,现在当他们转到时我可以做什么页面是这样的:
- 在数据库表中查找用户
- 将
isOnline标记为真 - 将
tokenDate设置为DateTime.Now - 创建一个随机的
token并将其设置为令牌 - 创建一个与令牌值相同的 Web cookie
当其他人(或同一个人)使用相同的电子邮件尝试访问该页面时
- 在数据库表中查找用户
- 如果
isOnline被标记为true并且cookie不存在,如果它确实检查了数据库中的cookie,如果失败则将它们引导出来,如果成功则可以进入。
我的问题是我要创建什么令牌,以便他们的原始用户仍然经过身份验证,所以如果他们关闭浏览器或转到另一个页面,他们仍然可以转到他们进行身份验证的主页?
【问题讨论】:
-
我会确保如果有人可以通过 URL 登录,则该电子邮件地址已加密,因此人们不能只是开始随机使用电子邮件地址登录。
-
为什么应用程序没有密码?假设如果有人使用我的电子邮件登录,然后我的原始用户无法再登录,因为具有相同电子邮件的令牌不匹配?这不是@Jack Marchetti 提到的安全问题吗?
-
但是不能有人转发 URL,然后两个人拥有相同的加密电子邮件吗?
-
@stom 这些是我的指示,我也不喜欢它。
-
非常清楚 - 这不是身份验证。这是盲目的信任。
标签: c# asp.net asp.net-mvc authentication