我正在對我的Asp .Net WebApi實施訪問令牌驗證,但儘管我試圖禁用任何類型的檢查,但我總是得到401 Unauthorized
。 我只是添加下面的代碼和Authorize
屬性控制器:WebApi調用始終未授權
public class Startup
{
public void Configuration(IAppBuilder app)
{
TokenValidationParameters validationParameters =
new TokenValidationParameters
{
ValidateIssuer = false,
ValidateIssuerSigningKey = false,
RequireSignedTokens = false,
RequireExpirationTime = false,
ValidateAudience = false,
ValidateLifetime = false,
ValidateActor = false
};
app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions()
{
TokenValidationParameters = validationParameters
});
}
}
此外,這是在Global.asax
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
我相信,令牌我使用的作品,因爲如果我使用ADFS驗證而不是此手動驗證,則流程正常工作。
UPDATE 啓用調試信息我注意到我收到以下錯誤。
Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware錯誤:0:驗證失敗 System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException:IDX10500:簽名驗證失敗。無法解析SecurityKeyIdentifier:「SecurityKeyIdentifier ( IsReadOnly =假, 計數= 1, 第[0] = X509ThumbprintKeyIdentifierClause(散列= 0x84371F65121DD3A5362C77EF61C5CC4EE5AD3807) )