c# - ASP.NET Core - 向用户添加角色声明

标签 c# asp.net-core asp.net-identity claims-based-identity

我有一个使用 Windows 身份验证的 ASP.NET Core(基于 .NET Framework)。重点是,我需要为该用户添加角色声明,并且该角色存储在远程数据库中。

我已经阅读了很多关于 OWIN/Cookie/UserManager/UserStore/Identity 的内容,以至于我迷路了。

问题:如何以最简单的方式为整个应用程序添加当前登录 (windows) 用户的角色声明?

我需要的是轻松使用 [Authorize(Role= "MyAddedRole")]bool res = User.IsInRole("MyAddedRole")

谢谢

最佳答案

除了答案之外,我刚刚找到了在 asp .net core 中完全预定义的答案。当您添加声明时:

var claims = new List<Claim>
{
    new Claim(ClaimTypes.Name, UserName),
    new Claim(ClaimTypes.Role, "User"),
    new Claim(ClaimTypes.Role, "Admin"),
    new Claim(ClaimTypes.Role, Watever)
};

之后你就可以像说的那样使用它了:

[Authorize(Roles = "Watever")]

User.IsInRole("Watever")

关于c# - ASP.NET Core - 向用户添加角色声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881157/

相关文章:

c# - Azure服务总线队列触发函数未被调用

docker - 如何在 Kubernetes 中配置多个服务/容器?

c# - 如何在单例类中使用 DbContext?

asp.net - 找不到的构造函数都不能用可用的服务和参数 Autofac 调用

c# - C#中的动态类型加载

c# - 如何配置应用程序以在具有高 DPI 设置(例如 150%)的机器上正确运行?

c# - 如何从 ECDsa 或 ECDsaCng 对象中提取文本私钥和公钥?

c# - LINQ 查询其中 ID 不作为对象列表中的属性存在

c# - 使用 SimpleInjector 为 AccountController/ApplicationUserManager 注册 UserStore

asp.net-identity - IdentityServer Asp.net 客户端超时强制注销