C# Microsoft标识-正在从角色中删除用户,但用户在注销之前仍具有访问权限
它的工作原理几乎和我想要的一样。但是,如果我删除了当前登录到我的应用程序的用户,那么他仍然能够“授权”我的所有WebApi调用,直到他注销为止。我做错了什么 编辑: 或者如何从代码中签出给定用户?两件事:C# Microsoft标识-正在从角色中删除用户,但用户在注销之前仍具有访问权限,c#,authentication,authorization,asp.net-identity,usermanager,C#,Authentication,Authorization,Asp.net Identity,Usermanager,它的工作原理几乎和我想要的一样。但是,如果我删除了当前登录到我的应用程序的用户,那么他仍然能够“授权”我的所有WebApi调用,直到他注销为止。我做错了什么 编辑: 或者如何从代码中签出给定用户?两件事: 确保在更改用户/角色后,调用_context.SaveChanges() 要要求用户的活动会话重新验证,请使用ASP.NET中的SecurityStamp功能 如果您使用的是OAuth声明,这是如何使会话无效的一个很好的示例: 希望这有帮助 有两件事: 确保在更改用户/角色后,调用_co
- 确保在更改用户/角色后,调用_context.SaveChanges()
- 要要求用户的活动会话重新验证,请使用ASP.NET中的SecurityStamp功能李>
- 确保在更改用户/角色后,调用_context.SaveChanges()
- 要要求用户的活动会话重新验证,请使用ASP.NET中的SecurityStamp功能李>
希望这有帮助 我只是不明白为什么没有其他使用“RemoveFromRole”的示例不解决这个问题。若你们从管理员的角色中删除某人,并且他的会话设置为持续一年,那个么他可能会破坏你们网站的一切。为什么没有“简单”的方法来做到这一点,我认为这是一件非常必要的事情?@SimonSondrupKristensen同意,对于角色/用户/组这样的个体实体来说,这可能/应该更容易。我想,既然有一种标准机制(SecurityStamp)可以克服这一问题,而且这更像是一个会话/身份验证缓存问题,更适合处理会话验证代码(SecurityStamp),它在优先级列表中的位置就很低。我只是不明白为什么没有其他使用“RemoveFromRole”的示例不要解决这个问题。若你们从管理员的角色中删除某人,并且他的会话设置为持续一年,那个么他可能会破坏你们网站的一切。为什么没有“简单”的方法来做到这一点,我认为这是一件非常必要的事情?@SimonSondrupKristensen同意,对于角色/用户/组这样的个体实体来说,这可能/应该更容易。我认为,由于有一种标准机制(SecurityStamp)可以克服这一问题,而且这更像是一个会话/身份验证缓存问题,更适合处理会话验证代码(SecurityStamp),所以它在优先级列表中处于较低的位置。
ApplicationDbContext _context = new ApplicationDbContext();
UserManager<ApplicationUser> _userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(_context));
userManager.RemoveFromRole("userId", "roleName");