[英]WebAPI does not respect Jwt token for authorize attribute
我已經實現了此處的所有步驟以及該站點上的其他教程,以使用 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 令牌,但是IsAuthorized
返回了 false,並且沒有設置 Principal。
有誰知道我可能會錯過什么? 我離這里很近。
我可能沒有足夠的信息來正確回答這個問題,但最終我沒有以正確的順序提交我的 OWIN 配置語句。 在 Startup.cs 我把app.UseWebApi(config);
在配置我的授權模塊的代碼之前。 把app.UseWebApi(config);
在配置代碼的末尾使它開始工作。
我在 ASP.NET 論壇上更好地提出了這個問題: http : //forums.asp.net/p/2070482/5976299.aspx?p=True&t=635803483826595456
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.