使用JWT的ASP.Net承载身份验证

时间:2018-08-05 12:03:25

标签: c# asp.net jwt

我已经实现了正常的登录行为,即在成功登录后发出JWT令牌。然后,API(ASP.Net)应该使用[Authorize]属性来限制对某些Controller动作的访问-但是我继续得到:

  

401-未经授权的响应(“此请求的授权已被拒绝。”)

我相对确定我没有正确配置JWT令牌认证-但是我在启动时使用了Microsoft.Owin.Host.SystemWeb

public void Configuration(IAppBuilder app) {
    ConfigureOAuthTokenConsumption(app);
}

private void ConfigureOAuthTokenConsumption(IAppBuilder app) {
    app.UseJwtBearerAuthentication(
        new JwtBearerAuthenticationOptions {
            AllowedAudiences = new string[] { "*" },
            TokenValidationParameters = new TokenValidationParameters {
                ValidateIssuer = true,
                ValidIssuer = "SomeValidIssuer",

                ValidateAudience = true,
                ValidAudience = "SomeValidAudience",

                ValidateLifetime = true,

                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("mysupersecretkey"))
            }
        }
    );
}

通过标头将非常简单的令牌传递给请求:

  

授权:承载eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzM1NzY5MDEsImlzcyI6IlNvbWVWYWxpZElzc3​​VlciIsImF1ZCI6IlNvbWVWYWxpZEF1ZGllbmNlIn0.YfgbVuLgjTagkZTHwXRh9gQxOq5boeMa7TOgq0keKc0

您可以使用this网站查看令牌的内容

在保护您的ASP.NET Core 2.0 API的安全性方面,我一直遵循this的出色链接,但我目前正在从事的项目无法选择dotNetCore,但是我遵循了类似的方法发行令牌的路径。

我在做错什么,为什么我的请求中得到401?

0 个答案:

没有答案