
[英]userManager.AddToRoleAsync() - Error: role does not exist
[英]How to refresh ASPNET claims in cookie after updating a role using userManager.AddToRoleAsync?
我正在使用 Identity Server 的 QuickStart UI 从多个 mvc 客户端登录用户。 然后,用户可以使用 userManager.AddToRoleAsync(roleName) 根据下拉菜单切换他们的角色。 我想刷新 cookie 并使用 User.IsInRole() 而不强制用户注销。
我尝试过的事情:
您可以在角色更改时发出新的 cookie,但这只会更改当前 session 中的用户角色。 如果他们在不同的选项卡或设备上打开了其他会话,则这些会话将保留旧 cookie。
cookie 是用户通过身份验证的“批准印章”,当应用程序收到有效的 cookie 时,它只进行最少的检查(如验证安全印章),然后使用 cookie 中存在的声明批准用户。
您的问题的一个可能解决方案可能是更改您的应用程序,而不是将用户声明存储在 cookie 中,而是在每次请求时从数据库中获取它们,并使用缓存(以避免过多的数据库请求)。 然后,如果您知道用户更改了角色,则可以使该缓存无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.