我使用Windows身份验证的ASP.NET Core(基于.NET Framework) . 重点是,我需要在该用户上添加角色声明,并且此角色存储在远程数据库中 .
我已经阅读了很多关于OWIN / Cookie / UserManager / UserStore / Identity等的内容,以至于我迷失了 .
问题:如何以最简单的方式为整个应用程序的当前用户登录(窗口)添加角色声明?
我需要的是轻松使用 [Authorize(Role= "MyAddedRole")]
或 bool res = User.IsInRole("MyAddedRole")
谢谢
3 回答
回答我自己,所以我做了什么:
创建我自己的UserClaimStore(我只需要这个商店,而不是其他商店):
然后创建了我自己的ClaimTransformer:
非常,在Startup.cs中:
现在我可以自由使用
[Authorize(Roles = "MyRole")]
或User.IsInRole("MyRole")
甚至User.HasClaim(/* */)
!除了答案之外,我刚刚找到了在asp .net核心中完全预定义的答案 . 当您添加声明时:
之后你可以像上面说的那样使用它:
要么
您可以在数据库中添加新角色(AspNetRoles),然后将其分配给用户(AspNetUserRoles) .