身份是经过身份验证的cookie

时间:2014-03-28 14:58:58

标签: c# asp.net asp.net-identity

我对ASP.NET身份提供程序有疑问。 我已经建立了一个系统,您可以对用户和角色执行CRUD操作,但我遇到了问题。如果我要删除已经过身份验证(登录)的用户,他仍然可以在网站上执行操作,因为他仍然在本地计算机上保留身份验证和授权cookie。当用户注销时,他无法再访问该网站。

我的问题: 有没有办法在请求页面时这样做,它会检查用户是否存在于数据库中?另一种方法可能是不存储角色'如果用户具有访问页面所需的角色,则使用cookie并检查(通过数据库)。我不知道如何配置它。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:2)

我们专门针对此场景添加了SecurityStampValidator,基本上您将CookieMiddleware配置为检查用户是否仍然有效。

请参阅此问题:What is the SecurityStamp

答案 1 :(得分:1)

我相信如果您在cacheRolesInCookie="false"标记的web.config中设置<roleManager>,您将获得所需的效果。然后,您将能够处理不再存在于db中的用户,并根据需要重定向(ex)用户。

答案 2 :(得分:0)

我发现在这里安装和阅读Microsoft ASP.NET Identity Samples 2.0.0-beta2:https://www.nuget.org/packages/Microsoft.AspNet.Identity.Samples结合阅读:https://aspnet.codeplex.com/SourceControl/latest#Samples/Identity/SingleSignOutSample/对解决我的问题非常有帮助。