2009-05-11 3 views
0

私の目標は、ユーザーの認証時にCookieを書き込むことです。私たちは、ソースコードとイベントモデルを隠している厄介なフレームワークを使用しています。そのため、ログインコントロールを使用するとセッションタイムアウトを設定できません。ユーザーがログアウトしたときにauthenticateRequestがページで起動するのはなぜですか?

私は、ユーザーがログインしているときにCookieを書き込もうとしていて、後続のページビュー(スライドの有効期限)でCookieの有効期限を更新しています。

私は最初に、global_asasでApplication_AuthenticateRequestの間にCookieを作成できると考えましたが、ユーザーがまだサインインしていない場合でも発火しているようです。

これは当てはまりますか?

答えて

0

はい。 Application_AuthenticateRequestは、要求がWebサイトにヒットするたびに発生します。認証を行うだけでなく、AuthenticateRequestも、ページの認証が行われるかどうかをチェックして返します。一部のページは、ログインページなどの認証および認可チェックから除外する必要があります。

また、ページを確認してログインシーケンスに関係するものを除外することも必要です。

0

Application_AuthenticateRequestはリクエストごとに起動しますが、フォーム認証を使用していてユーザーがまだログインしていない場合は、HttpContextのUserプロパティ(グローバルアプリケーションクラスファイルのthis.Userからアクセスされます)ユーザーがログインしている場合、それはIPrincipalオブジェクトに評価しますながら)、nullに評価

だからあなたは、このような何かを行うことができます。authCookieNameは、クッキー名である

Private Sub Application_AuthenticateRequest(ByVal pObjSender As Object, ByVal pEaDummy As EventArgs) 
    If Me.User IsNot Nothing AndAlso Me.User.Identity.IsAuthenticated Then 
     If Me.Request.Cookies("authCookieName") Is Nothing Then 
      ' Create cookie 
     Else 
      ' Update cookie 
     End If 
    End If 
End Sub 

関連する問題