Asp.net 使用JWTBeareAuthenticationOptions时未授权Web API

Asp.net 使用JWTBeareAuthenticationOptions时未授权Web API,asp.net,asp.net-web-api,owin,jwt,owin-security,Asp.net,Asp.net Web Api,Owin,Jwt,Owin Security,我已经从一个演练中学习了第2部分,该部分介绍了如何使用jwt进行授权,以便我可以从我的客户机获得一个访问令牌,并授权他们使用api。然而,我似乎无法让这个工作。我不断收到邮递员发来的401信息,并附上: { "Message": "Authorization has been denied for this request." } 教程链接: 访问令牌来自我用Java创建的授权服务,因此本教程的第一部分不适用于我 JWT { "exp": 1489641048, "user_nam

我已经从一个演练中学习了第2部分,该部分介绍了如何使用jwt进行授权,以便我可以从我的客户机获得一个访问令牌,并授权他们使用api。然而,我似乎无法让这个工作。我不断收到邮递员发来的401信息,并附上:

{
  "Message": "Authorization has been denied for this request."
}
教程链接:

访问令牌来自我用Java创建的授权服务,因此本教程的第一部分不适用于我

JWT

{
  "exp": 1489641048,
  "user_name": "testuser",
  "authorities": [
    "USER"
  ],
  "jti": "2dde11c3-2f06-496c-9b36-4dbf71cdc2e2",
  "client_id": "webreport_service",
  "scope": [
    "USER"
  ]
}
Web API代码片段

 public void ConfigureOAuth(IAppBuilder app)
    {

        var audience = "webreport_service";

        // Api controllers with an [Authorize] attribute will be validated with JWT
        app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { audience },
                IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                {

                    new SymmetricKeyIssuerSecurityTokenProvider("Any", "abc123")
                }
            });

    }
它与第2节中的链接略有不同,但这是因为我没有对我的秘密进行base64编码,也没有将发布者放入jwt中

邮递员

GET /api/protected HTTP/1.1
Host: localhost:54706
Authenticate: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0ODk2NDEyOTAsInVzZXJfbmFtZSI6InRlc3R1c2VyIiwiYXV0aG9yaXRpZXMiOlsiVVNFUiJdLCJqdGkiOiJlMDNkNWZmZC1hZWI4LTRkODctOGQ3My0zNjhjYjQ2ZDg2OWUiLCJjbGllbnRfaWQiOiJ3ZWJyZXBvcnRfc2VydmljZSIsInNjb3BlIjpbIlVTRVIiXX0.C4hivwA1VF-0GO0xCVUoDIheWQWlAcVWvAzChZTgrHY
Cache-Control: no-cache
Postman-Token: ff628109-d5f4-76e0-41c2-e0c7d377b93f
任何帮助都将不胜感激


谢谢

我想是的,请检查以下内容:

首先:

检查您的机密base64代码。”abc123'是真的吗? 我正在jwt.io网站上查看您的令牌,查看您的密码。 但签名无效

其次:

检查您的有效载荷值。 你的jwt有效载荷是什么您的发卡机构验证设置为“任意”

你的jwt有效载荷是多少您的受众验证集“webreport\u服务”

想想看

致意