私はGlobal.asaxでApplication_AuthenticateRequest()をオーバーライドして、イベントフローをよりよく理解しようとしました。私はデフォルトのMVC2アプリケーションに付属のメンバーシッププロバイダを使用しています。HttpApplicationイベントフローはどのようにメンバーシップとクッキーに関連していますか?
私はこれをしなかった場合、私は考えた:
public void Application_AuthenticateRequest(object sender, EventArgs args)
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
authCookie.Expires = System.DateTime.Now.AddDays(-1); // Set the cookie expires time in order to delete it
Response.Cookies.Add(authCookie);
}
}
を、ユーザがログインできますが、彼らは、ログインフォームを送信した後、ログインしていないとして、私は彼らの認証クッキーを破壊されたため、ページの読み込み時に、彼らが表示されるでしょう。
ただし、そうではありません。代わりに、ログインに成功し、ページが読み込まれたときにログインしていることが表示されます。次のページでそれらをログアウトします。
私は自分のクッキーを時間内に破棄しないと思ったので、私はそのコードを私のGlobal.asaxのApplication_BeginRequest()に入れました。それは同じ結果をもたらした。
これは私がまだ時間内にクッキーを破壊しなかったことを意味するのでしょうか、またはイベントの流れを正しく理解していませんか?
意味があります。どうやら私は、レスポンスを送り返すとクッキーが削除されると思っていました。それは魔法のように返信されるレスポンスに劇的に影響します。ハーハー。私はそれらをログアウトするために1ページのヒットで生きることができます。つまり、Application_AuthenticateRequest()は、このようなロジックの良い場所ですか? – Sgraffite