【发布时间】:2018-04-26 08:13:12
【问题描述】:
我将 ASP.NET Identity 与 MVC 结合使用,并且我为每个登录用户的每个设备设置了一个 sessionId(GuId 字符串)。这个想法是用户可以删除设备会话,然后该设备将不再登录(就像在 Dropbox 和 google 中所做的那样)。
目前,我将此 sessionId 设置为 ASP.NET Identity 中的声明,因此它在身份验证 cookie 中传递。
对于身份验证,我使用 ASP.NET Identity 作为示例:app.UseCookieAuthentication(new CookieAuthenticationOptions{....
我的问题:
在这里将我的 sessionId 设置为声明是否正确?
另外,在整个身份验证过程中,我可以在哪里验证该 sessionId 的声明?
我目前的想法是针对每个请求的数据库表验证此 sessionId。我应该使用 Request.Sessions 来存储 sessionId,还是这里有任何其他想法?
谢谢,
【问题讨论】:
-
不确定,否则这会对您有所帮助。但是在创建 MVC 项目时,您可以选择设置身份验证方法。那应该生成示例代码。对于跟踪用户的情况,我认为这应该是一种可接受的方法。
-
通过 ASP.NET Identity 我使用 app.UseCookieAuthentication(new CookieAuthenticationOptions{.... 我应该如何使用这个选项来验证我的 sessionIds?
-
我在之前的回答中应该提到的一点:如果您想在任何地方为用户签名,您所要做的就是更改 AspNetUser 表中安全标记的值。
SecurityStampValidator根据这个值检查 auth cookie,如果它发生变化,则将其注销
标签: c# asp.net-mvc asp.net-identity-2