Avevo un riferimento a Microsoft.IdentityModel.Tokens.JWT
e tutto funzionava correttamente.JwtSecurityTokenHandler e TokenValidationParameters
Ho aggiornato per utilizzare il nuovo System.IdentityModel.Tokens.Jwt
ma nulla sembra funzionare ora. Non riesce a trovare il metodo ValidateToken
dello JwtSecurityTokenHandler
e lo TokenValidationParameters
non ha AllowedAudience
, SigningToken
o ValidateExpiration
proprietà.
Cosa mi manca qui? Qualcuno può fornire un esempio funzionante di una convalida JWT con questo?
Il mio codice "vecchio":
private static void ValidateJwt(string jwt)
{
var handler = new JWTSecurityTokenHandler();
var validationParameters = new Microsoft.IdentityModel.Tokens.JWT.TokenValidationParameters()
{
AllowedAudience = "https://my-rp.com",
//SigningToken = new BinarySecretSecurityToken(Convert.FromBase64String(myBase64Key)),
SigningToken = new X509SecurityToken(
X509
.LocalMachine
.My
.Thumbprint
.Find("UYTUYTVV99999999999YTYYTYTY88888888", false)
.First()),
ValidIssuer = "https://my-issuer.com/trust/issuer",
ValidateExpiration = true
};
try
{
var principal = handler.ValidateToken(jwt, validationParameters);
}
catch (Exception e)
{
Console.WriteLine("{0}\n {1}", e.Message, e.StackTrace);
}
Console.WriteLine();
}
Grazie per questo! Ugh, così frustrante: \ Coding in ASP.NET è stato un incubo assoluto rispetto ad altri framework laggiù – ossys
Felice di averlo aiutato! –
@ossys Forse è solo la parte di Azure? Ho usato ASP.NET per un po 'e lo adoro. Devo fare le cose Azure AD ora ed è un dolore nella parte posteriore. – Shelby115