JwtSecurityToken läuft nicht ab, wenn es sollte

Ich verwende derzeit die JwtSecurityToken-Klasse im System.IdentityModels.Tokens-Namespace. Ich erstelle einen Token mit den folgenden Angaben:

DateTime expires = DateTime.UtcNow.AddSeconds(10);
JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
var genericIdentity = new System.Security.Principal.GenericIdentity(username, "TokenAuth");

ClaimsIdentity identity = new ClaimsIdentity(claims);
string secret = ConfigurationManager.AppSettings["jwtSecret"].ToString();
var securityKey = new     InMemorySymmetricSecurityKey(Encoding.Default.GetBytes(secret));
var signingCreds = new SigningCredentials(securityKey,     SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.HmacSha256Signature);
var securityToken = handler.CreateToken(
    issuer: issuer,
    audience: ConfigurationManager.AppSettings["UiUrl"].ToString(),
    signingCredentials: signingCreds,
    subject: identity,
    expires: expires,
    notBefore: DateTime.UtcNow
);
return handler.WriteToken(securityToken); 

Aus irgendeinem Grund wird, obwohl das Ablaufdatum auf 10 Sekunden nach der aktuellen Zeit festgelegt ist, keine Ausnahme ausgelöst, wenn das Token bis etwa 5 Minuten validiert wird. Nachdem ich das gesehen hatte, dachte ich, es gäbe vielleicht eine Mindestablaufzeit von 5 Minuten, also stellte ich die Ablaufzeit auf:

DateTime.UtcNow.AddMinutes(5);

Dann läuft es nach 10 Minuten ab, aber die Ausnahmemeldung besagt, dass die Ablaufzeit auf den Sollwert festgelegt ist (5 Minuten, nachdem sich der Benutzer angemeldet hat). Wenn die aktuelle Zeit in der Ausnahme angezeigt wird, sind es 5 Minuten nach Ablauf der Frist. Es scheint also zu wissen, wann es ablaufen SOLLTE, aber es löst die Ausnahme erst 5 Minuten nach Ablauf der Ablaufzeit aus. Dann, da das Token 5 Minuten zu der Zeit hinzufügt, zu der es abläuft, setze ich die Ablaufzeit auf:

DateTime.UtcNow.AddMinutes(-5).AddSecond(10);

Ich habe das getestet und es ist noch nicht abgelaufen (nach mehr als zehn Minuten). Kann mir bitte jemand erklären, warum das passiert und was ich falsch mache? Wenn Sie mit dem von mir bereitgestellten Code etwas anderes sehen, wäre ich Ihnen dankbar, da ich mit der Verwendung von JWTs und dieser Bibliothek noch nicht vertraut bin.

Danke im Vorau

Antworten auf die Frage(8)

Ihre Antwort auf die Frage