我想使用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并手动添加角色声明(如果是,在何处/如何操作)那?)?
我想将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)