私のユーザー名を変更できるモジュールがアプリケーションにあります。ユーザー名が変更されているため、authcookieはXSRFトークンとともに更新する必要があります。X-XSRF更新されたユーザーのトークンエラー
これを試してみると、「提供された偽造トークンはユーザー向けのものです...」というエラーが表示されています。さて、私はこれを解決する方法について少しヒントを得ました。現在のXSRFトークンは古いユーザー名用であり、更新されたユーザー名用ではないため、このエラーです。
Global.asaxコードを見ると、ユーザー名の変更はApplication_AuthenticateRequest
にしか反映されません。また、検証時に同じエラーが発生した場合は、Application_PostAuthenticateRequest
を修正して、更新されたユーザー名に新しいXSRFトークンを強制的に作成しました。
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
}
今私の本当の問題は、私は、サーバー側でのGlobal.asax以外からApplication_AuthenticateRequest
とApplication_PostAuthenticateRequest
をトリガすることができ、ありますか?
ユーザーがユーザー名を更新した直後にトリガーしたいと考えています。
「私の問題は特定のユーザーの詳細を正常に更新するときです」 - これを行うコードを教えてください。 – mjwills
ユーザーの更新は、BLに埋め込まれたストアドプロシージャにすぎません。 – jengfad
あなたはそれを私たちと分かち合うことができますか? – mjwills