Bir HTTP başlığı olarak (Azure Mobil Hizmetler tarafından verilmiş) Bu JWT'yi geçmek deneyin/Yetkilendirme/Hamiline jetonu: yapılandırılmış benim ASP.NET WEB API içineNeden SecurityTokenSignatureKeyNotFoundException alıyorum?
Header:
{
"alg": "HS256",
"typ": "JWT",
"kid": "0"
}
Claims:
{
"ver": 2,
"aud": "Facebook",
"iss": "urn:microsoft:windows-azure:zumo",
"urn:microsoft:credentials": "pYK8b5...",
"exp": 1436730730,
"uid": "Facebook:10000xxxxxxxxxx"
}
:
const string issuer = "urn:microsoft:windows-azure:zumo";
byte[] mobileServicesSecret = TextEncodings.Base64Url.Decode(ConfigurationManager.AppSettings["as:SecretKey"]);
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { "Facebook" },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, mobileServicesSecret)
}
});
ben olsun:
tip 'System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException' ilk şansını istisna Sist oluştu em.IdentityModel.Tokens.Jwt.dll
Bunun nedeni "çocuk" özelliğinin varlığı olduğundan şüpheleniyorum.
DÜZENLEME: Bu https://github.com/Magenic/JWTvalidator/tree/master/JwtValidator/JwtValidator'u kullanarak, JWT'yi doğrulamak mümkündür, bu yüzden yanlış bir şey yoktur. Ama gerçekten OWIN/Katana'yı kullanmak istiyorum.
Bu sorunun üstesinden gelebilir misiniz? Bununla takılıyorum. Kodu verebilir misiniz? –
@KunalB. hayır, üzgünüm Owin/Katana'yı kullanmak için bir çözüm bulamadım. Bağlantıdaki JwtValidator sınıfını kullanmalı ve doğrulamak için özel bir Kimlik Doğrulama özelliğini kullanmalıyım. Microsoft en iyi yaptıkları şeyi yapar; Bir ekip (Azure Mobiles Services ekibi) çitin bir tarafında oturuyor, diğer (ASP.NET ekibi) diğer tarafta oturuyor ve muhtemelen birbirleriyle hiç konuşmamışlar ... :( –
2 gün sonra Ben - http://markwalsh.io/development/2014/12/02/ASP.Net%20Web%20API%20with%20JWT/ Bu benim için çalıştı.Hata ayıklama sırasında hala bazı garip mesaj alıyorum. –