0

私の目標は、ユーザーの認証時に Cookie を書き込むことです。ソースコードとイベントモデルを隠す安っぽいフレームワークを使用しているため、ログインコントロールを使用すると、セッションタイムアウトを設定できません!

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

そのため、最初に global.asax の Application_AuthenticateRequest 中に Cookie を作成できると考えましたが、ユーザーがまだサインインしていなくても起動しているようです。

果たしてそうなのでしょうか。

4

2 に答える 2

1

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

したがって、次のようなことができます。

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

ここで、authCookieName は Cookie 名です。

于 2009-05-11T21:50:03.223 に答える
0

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

状況に応じて、ページも確認し、ログインシーケンスに関係するものを除外する必要があります。

于 2009-05-11T20:49:50.793 に答える