2016-11-21 254 views
1

我想退出,我改变(删除,添加或删除角色,更改密码等)用户的所有活动会话注销用户。如何在ASP.NET核心身份

我找到了老版本的ASP .NET的解决方案。基本上调用UserManager.UpdateSecurityStampAsync(userId);,但这似乎不适用于ASP .NET Core。我可以调用这个函数,但它什么都不做。之后用户仍然登录。

那么,如何在地球上可以注销登录的用户(所有打开的会话)?

回答

1

有一个IdentityOptions的属性,名为SecurityStampValidationInterval,它设置cookie被验证的频率。默认设置为30分钟。你可以改变:

services.Configure<IdentityOptions>(options => 
{ 
    options.SecurityStampValidationInterval = TimeSpan.FromSeconds(0);    
}); 
+0

非常感谢你,这完美的作品。使用如此低的价值时是否存在性能损失?将此属性设置为1刻度时,实际验证的印章在什么时候? (每次请求我只能猜到一次)。 – FSMaxB

+0

@FSMaxB是的。每个来自用户的每个HTTP请求的数据库额外请求。 – tmg

+0

那么真的没有其他办法可以使用户cookie失效吗?我们无法更改该用户cookie的数据保护密钥或做一些使内存中的cookie无效的内容? 设置邮票验证时间间隔看起来像是一种解决方法,并且首先破坏了将这种风格的身份的目的。 – Ryan