相关疑难解决方法(0)

ASP.NET Core JWT映射角色声明为ClaimsIdentity

我想使用JWT保护ASP.NET Core Web API.另外,我想有一个选项,直接在控制器动作属性中使用来自令牌有效负载的角色.

现在,虽然我确实找到了如何将其与策略一起使用:

Authorize(Policy="CheckIfUserIsOfRoleX")
ControllerAction()...
Run Code Online (Sandbox Code Playgroud)

我想更好地选择使用通常的东西:

Authorize(Role="RoleX")
Run Code Online (Sandbox Code Playgroud)

其中Role将从JWT有效负载自动映射.

{
    name: "somename",
    roles: ["RoleX", "RoleY", "RoleZ"]
}
Run Code Online (Sandbox Code Playgroud)

那么,在ASP.NET Core中实现这一目标的最简单方法是什么?有没有办法通过一些设置/映射自动工作(如果是这样,在哪里设置它?)或者我应该在验证令牌后,拦截生成ClaimsIdentity并手动添加角色声明(如果是,在何处/如何操作)那?)?

c# asp.net-core asp.net-core-webapi

23
推荐指数
3
解决办法
4万
查看次数

在哪里可以使用Windows身份验证将用户信息加载到ASP.NET MVC 5中的会话?

我想将ASP.NET MVC 5用于我的Web应用程序.我需要使用windows authentication.

如果我使用windows authenticationwhere是读取用户信息(用户ID和角色)的最佳位置并将其存储到Session

我有从数据库中通过用户名获取用户信息的方法,如下所示:

public class CurrentUser
    {
        public int UserId { get; set; }

        public string UserName { get; set; }

        public Roles Roles { get; set; }
    }

    public enum Roles
    {
        Administrator,
        Editor,
        Reader
    }

    public class AuthService
    {
        public CurrentUser GetUserInfo(string userName)
        {
            var currentUser = new CurrentUser();

            //load from DB

            return currentUser;
        }
    }
Run Code Online (Sandbox Code Playgroud)

session windows-authentication asp.net-mvc-5

5
推荐指数
1
解决办法
2778
查看次数