【发布时间】:2014-10-30 20:59:38
【问题描述】:
我曾经引用过Microsoft.IdentityModel.Tokens.JWT,一切正常。
我更新为使用新的System.IdentityModel.Tokens.Jwt,但现在似乎没有任何效果。它找不到JwtSecurityTokenHandler 的ValidateToken 方法,并且TokenValidationParameters 没有AllowedAudience、SigningToken 或ValidateExpiration 属性。
我在这里缺少什么?任何人都可以提供 JWT 验证的工作示例吗?
我的“旧”代码:
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# validation security jwt identity