如果您的密码是基本64编码的字节数组,则这似乎可行。
public static void ValidateJwtWithHs256(String encodedJwt, String base64EncodedSecret, String validAudience, String validIssuer)
{
var tokenValidationParameters = new TokenValidationParameters
{
IssuerSigningToken = new BinarySecretSecurityToken(Base64UrlEncoder.DecodeBytes(base64EncodedSecret)),
ValidIssuer = validIssuer,
ValidAudience = validAudience,
};
SecurityToken securityToken;
new JwtSecurityTokenHandler().ValidateToken(encodedJwt, tokenValidationParameters, out securityToken);
}
或者,你可以告诉验证器无法验证某些部分,像这样:
var tokenValidationParameters = new TokenValidationParameters
{
IssuerSigningToken = new BinarySecretSecurityToken(Base64UrlEncoder.DecodeBytes(base64EncodedSecret)),
ValidateAudience = false,
ValidateIssuer = false,
};
不幸的是,我仍然不知道如何在一个秘密的字符串,它是不工作的碱基64编码像http://jwt.io那样。