Ich habe versucht, ein JwtSecurityToken mit einem einfachen Schlüssel zu erstellen und zu signieren. Und nach vielen Nachforschungen scheint es, dass alle Beispiele, die ich finde, die InMemorySymmetricSecurityKey Klasse verwenden, aber diese Klasse scheint in den neuesten Versionen der System.IdentityModel Bibliotheken nicht zu existieren.dnx451 RC1 Was ist mit InMemorySymmetricSecurityKey passiert?
Dies sind die Abhängigkeiten Ich verwende:
"System.IdentityModel.Tokens": "5.0.0-rc1-211161024",
"System.IdentityModel.Tokens.Jwt": "5.0.0-rc1-211161024"
Ich habe auch versucht Basisklasse SymmetricSecurityKey es verwenden, aber dann bekomme ich die folgende Ausnahme bei dem Versuch, den Token zu erstellen:
"Value cannot be null.\r\nParameter name: IDX10000: The parameter 'signatureProvider' cannot be a 'null' or an empty object."
Diese ist der Code, der die Ausnahme auslöst:
public static string CreateTokenHMAC()
{
HMACSHA256 hmac = new HMACSHA256(Convert.FromBase64String("test"));
var key = new SymmetricSecurityKey(hmac.Key);
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);
JwtSecurityToken token = _tokenHandler.CreateJwtSecurityToken(new SecurityTokenDescriptor()
{
Audience = AUDIENCE,
Issuer = ISSUER,
Expires = DateTime.UtcNow.AddHours(6),
NotBefore = DateTime.Now,
Claims = new List<Claim>()
{
new Claim(ClaimTypes.Email, "[email protected]")
},
SigningCredentials = signingCredentials
});
return _tokenHandler.WriteToken(token);
}
Es ist das erste Mal, dass ich JwtSecurityToken benutze, also denke ich, dass ich wahrscheinlich irgendwo einen Schritt verpasse
Vielen Dank für Ihre Antwort zu überprüfen :) –