Tôi đã từng tham chiếu đến Microsoft.IdentityModel.Tokens.JWT
và mọi thứ đều hoạt động tốt.JwtSecurityTokenHandler và TokenValidationParameters
Tôi đã cập nhật để sử dụng System.IdentityModel.Tokens.Jwt
mới nhưng hiện tại không có gì hoạt động. Không thể tìm thấy phương thức ValidateToken
của JwtSecurityTokenHandler
và TokenValidationParameters
không có các thuộc tính AllowedAudience
, SigningToken
hoặc ValidateExpiration
.
Tôi thiếu gì ở đây? Bất cứ ai có thể cung cấp một mẫu làm việc của một xác nhận JWT với điều này?
My mã "cũ":
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();
}
Cảm ơn vì điều này! Ugh, rất bực bội: \ Mã hóa trong ASP.NET đã là một cơn ác mộng tuyệt đối so với các khung công tác khác ngoài kia – ossys
Rất vui khi được! –
@ossys Có lẽ nó chỉ là phần Azure? Được sử dụng ASP.NET trong một thời gian và thích nó. Phải làm công cụ Azure AD bây giờ và đó là một cơn đau ở phía sau. – Shelby115