我使用asp.net核心网络api生成了包含用户信息和她的角色的令牌,并将其放在客户端,然后将其放在请求标头中的x-auth-token中。我如何在asp.net api控制器和操作中授权用户(及其角色)?我在startup.cs中的设置如下所示,但我无法在操作中捕获请求!
var securityKey = Environment.GetEnvironmentVariable("SECURITY_KEY");
var symmetricSecurityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(securityKey));
services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "shoniz.com",
ValidAudience = "readers",
IssuerSigningKey = symmetricSecurityKey
};
});
答案 0 :(得分:0)
示例中的代码是身份验证设置(JWT方案)。首先,您必须添加中间件,该中间件将对用户进行身份验证。这部分代码应以var m = [[1,2,3],[4,5,6],[7,8,9]];
var matrix = JSON.parse(JSON.stringify(m));
m.shift();
console.log(matrix);
m[0].shift();
console.log(m);
console.log(matrix);
(Startup.cs
方法)显示。
Configure()
调用此中间件后,将考虑所有身份验证方案。认证成功后,将设置app.UseAuthentication();
(包括您所有的问题声明)。
第二部分是授权。最简单的方法是使用HttpContext.User
属性,该属性可以与操作方法和控制器一起用作批注。您可以添加自定义角色名称或策略限制。
[Authorize]