Angenommen, ich habe ein Modul in meiner App, das den Benutzernamen ändern kann. Da der Benutzername geändert wird, sollte der Authcookie zusammen mit dem XSRF-Token aktualisiert werden.X-XSRF Token-Fehler für aktualisierten Benutzer
Beim Versuch, dies zu erhalten, bekomme ich eine Fehlermeldung, die besagt "Das mitgelieferte Anti-Fälschungs-Token war für Benutzer bestimmt ...". Nun, ich habe einen kleinen Hinweis, wie ich das lösen kann. Da das aktuelle XSRF-Token für den alten Benutzernamen und nicht für den aktualisierten war, daher dieser Fehler.
Mit Blick auf den Global.asax-Code würde sich die Änderung des Benutzernamens nur auf Application_AuthenticateRequest
widerspiegeln. Ich habe auch die Application_PostAuthenticateRequest
geändert, um die Erstellung eines neuen XSRF-Tokens für den aktualisierten Benutzernamen zu erzwingen, wenn bei der Überprüfung derselbe Fehler auftritt.
protected void Application_PostAuthenticateRequest(object sender, EventArgs e)
{
var existingXsrfCookie = Request.Cookies["XSRF-TOKEN"];
// logic for parsing XSRF-TOKEN
try
{
...more logic
AntiForgery.Validate(currentCookieToken, currentFormToken);
return;
}
catch (Exception ex)
{
Logger.ErrorException(ex.Message, ex);
}
// logic for creating new XSRF token
}
Nun meine eigentliche Frage ist, kann ich auslösen Application_AuthenticateRequest
und Application_PostAuthenticateRequest
von einem anderen als dem Global.asax auf Server-Seite?
Ich möchte dann sofort auslösen, nachdem der Benutzer den Benutzernamen aktualisiert hat.
'Mein Problem ist, wenn ich Details für einen bestimmten Benutzer erfolgreich aktualisieren '- zeigen Sie uns bitte Ihren Code, der dies tut. – mjwills
Das Aktualisieren eines Benutzers ist nur eine gespeicherte Prozedur, die in einem BL eingebettet ist. – jengfad
Jede Chance, Sie könnten es mit uns teilen? – mjwills