C# 更新用户';政府的成员角色

C# 更新用户';政府的成员角色,c#,asp.net,asp.net-membership,C#,Asp.net,Asp.net Membership,我正在使用asp.net MVC 5 identity 2.0 管理员可以更改用户的角色,但必须重新登录才能查看更改。第一个想法是手动重新登录用户,但我失败了。在那之后,我想到了动态地改变用户的角色或者其他一些事情。你能告诉我正确的方法吗? 我使用UserManager.AddToRolesAsync设置用户角色 我试过很多东西,比如: var memberUser = Membership.GetUser(user.UserName.ToString()); if (memberUser.Is

我正在使用asp.net MVC 5 identity 2.0 管理员可以更改用户的角色,但必须重新登录才能查看更改。第一个想法是手动重新登录用户,但我失败了。在那之后,我想到了动态地改变用户的角色或者其他一些事情。你能告诉我正确的方法吗? 我使用UserManager.AddToRolesAsync设置用户角色 我试过很多东西,比如:

var memberUser = Membership.GetUser(user.UserName.ToString());
if (memberUser.IsOnline)
{
        FormsAuthentication.SignOut();
}
或者也试着清理我的饼干。 我不知道怎样才能注销其他用户。 我也读过类似的文章


请看on提供的答案,他准确地描述了如何使用SecurityStamp解决此问题

所以SecurityStamp的主要目的是启用注销 到处都是。其基本思想是,无论什么时候 对用户进行更改,就像密码一样,最好 自动使任何现有登录cookie无效,因此如果 密码/帐户先前已被泄露,攻击者不再 可以访问

在2.0.0中,我们添加了以下配置来钩住 CookieMiddleware中的OnValidateIdentity方法查看 SecurityStamp并在Cookie发生更改时拒绝它。它也 每隔一天自动刷新数据库中的用户声明 如果戳记保持不变,则刷新间隔(这会解决问题 如更换角色等)


这应该可以让您继续。

首先,我试图在编辑用户角色后调用UpdateSecurityStampAsync,但它不起作用。我等了很长时间(大约20分钟),什么也没发生。然后我将validateInterval从30分钟更改为10秒,该用户立即刷新但注销,但这发生在我编辑该用户后10秒之前,然后我删除了UpdateSecurityStampAsync,它仍然像以前一样工作,但用户已注销。我可以将validateInterval设置为10秒,但我不确定结果我不确定我是否完全理解你的意思。更新SecurityStamp不会导致用户在其终端自动注销。cookie必须发送到服务器才能使其失效,这必须通过客户端的交互来完成。