JWT授权Asp.net核心

时间:2019-09-12 13:00:01

标签: c# .net-core

我的问题是在Authorization上。

我有两个控制器的AccountPatient控制器。我正在打电话给 PatientController.GetData并说为Unauthorized

我确定我已经附加了authorization:"jwttoken" on the Header

[Authorize]
public class AccountController{

   [AllowAnonymous]
   public JsonResult Login(){

   }

}

[Authorize]
public class PatientController{

    public IActionResult GetData(){

    }

}

startup file
here is my startup file:

    services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(x =>
            {

                x.RequireHttpsMetadata = false;
                x.SaveToken = true;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey = new SymmetricSecurityKey(key),
                    ValidateIssuer = false,
                    ValidateAudience = false

                };
            });

谢谢, 傍

1 个答案:

答案 0 :(得分:0)

您需要确保已在startup.cs文件configureServices()中设置了您的授权

例如

 services.AddAuthentication("Bearer")
            .AddJwtBearer("Bearer", options =>
            {
                options.Authority = "Authentication Server Url";
                options.RequireHttpsMetadata = false;
                options.Audience = "Client id";

            });