Pat*_*ote 19 c# security validation identity jwt
我以前有一个参考Microsoft.IdentityModel.Tokens.JWT
,一切都很好.
我更新了使用新的System.IdentityModel.Tokens.Jwt
但现在似乎没有任何工作.它不能找到ValidateToken
的方法JwtSecurityTokenHandler
和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();
}
Run Code Online (Sandbox Code Playgroud)
Pat*_*ote 37
经过大量的研究和测试,我终于发现一些属性名称TokenValidationParameters
已经改变,JwtSecurityTokenHandler.ValidateToken()
方法签名也是如此.
所以这是上面代码的修改工作版本.
private static void ValidateJwt(string jwt)
{
var handler = new JwtSecurityTokenHandler();
var validationParameters = new TokenValidationParameters()
{
ValidAudience = "https://my-rp.com",
IssuerSigningTokens = new List<X509SecurityToken>() { new X509SecurityToken(
X509
.LocalMachine
.My
.Thumbprint
.Find("UYTUYTVV99999999999YTYYTYTY88888888", false)
.First()) },
ValidIssuer = "https://my-issuer.com/trust/issuer",
CertificateValidator = X509CertificateValidator.None,
RequireExpirationTime = true
};
try
{
SecurityToken validatedToken;
var principal = handler.ValidateToken(jwt, validationParameters, out validatedToken);
}
catch (Exception e)
{
Console.WriteLine("{0}\n {1}", e.Message, e.StackTrace);
}
Console.WriteLine();
}
Run Code Online (Sandbox Code Playgroud)
并且作为参考,命名空间中的JwtSecurityTokenHandler
生命System.IdentityModel.Tokens
.不要忘记添加软件包" Microsoft .Net Framework 4.5的JSON Web令牌处理程序" (我编写这些行时的版本4.0.0).
希望它可以节省几个小时的搜索你们中的一些人!
归档时间: |
|
查看次数: |
31670 次 |
最近记录: |