【发布时间】:2016-01-07 17:20:27
【问题描述】:
我已经实现了所有步骤 here 和该站点上的其他教程,以使用 AngularJS 和 WebAPI 在我的应用程序中发布和使用 Jwt。在我的 Startup.cs 中,当AuthorizeAttribute 存在时,我正在调用以下函数来告诉应用程序消费者 Jwt 令牌:
private void ConfigureOAuthTokenConsumption(IAppBuilder app)
{
string issuer = MyIssuer;
string audienceId = MyAudienceID;
X509Certificate2 cert = GetMyCertificate();
// Api controllers with an [Authorize] attribute will be validated with JWT
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { audienceId },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new X509CertificateSecurityTokenProvider(issuer, cert)
}
});
}
当我运行应用程序时,我可以很好地登录,很好地生成 Jwt 令牌,以角度使用它们并将它们添加到 API 请求中,但我仍然得到 404。我必须在 Jwt 配置中遗漏一些东西所以它没有被验证,但我没有收到任何错误。
为了它,我尝试实现一个客户AuthorizeAttribute,并在IsAuthorized 方法中放置一个断点。可以看到请求中包含了Bearer token,但是IsAuthorized返回false,并且没有设置Principal。
有人知道我可能缺少什么吗?我离这里很近。
【问题讨论】:
标签: c# asp.net angularjs asp.net-web-api jwt