创建必要的验证参数以调用JwtSecurityTokenHandler ValidateToken()......
我知道我可以这样做:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(new RSAParameters()
{
Modulus = "",
Exponent = ""
});
var validationParameters = new TokenValidationParameters
{
IssuerSigningKey = new RsaSecurityKey(rsa)
};
我想直接设置公钥,而不是单独设置模数和指数。怎么办呢?
答案 0 :(得分:0)
如果您保存的密钥看起来像xmldsig RSAKeyValue(<RSAKeyValue><Modulus>base64</Modulus><Exponent>base64</Exponent></RSAKeyValue>
),并且您不在.NET Core上,则可以使用rsa.FromXmlString(keyString)
。
如果您保存的密钥格式更改为CAPI blob的byte[]
表示形式,那么您可以使用rsa.ImportCspBlob(keyBlob)
。
如果您保存的密钥格式更改为CNG blob的byte[]
表示,那么您可以使用new RSACng(CngKey.Import(blob, blobType))
否则,您可以拥有最少的代码,并带有以下想法: