0

現在、Global.ascx ファイル内で "Session_Start" 関数を使用して、認証されたユーザーがサイトにアクセスしたときに保存しています。

これは、ユーザー セッションが期限切れになった場合でも問題なく機能しますが、永続的な Cookie を使用しているため、ユーザーは 28 日以内にサイトに戻る可能性があり、この関数は呼び出されないため、ユーザーがアクセスしたデータベースに記録されません。

Global.ascx 内で使用できるすべての関数をよく調べましたが、必要な機能を実行できる関数が見つかりません。

Application_Start - ライフサイクル内でのみトリガーされて実行されます Application_BeginRequest - 作成されたすべてのリクエスト Application_AuthenticateRequest - すべてのリクエスト Session_Start - 新しいセッションが開始されたとき

使用できると思われる 2 つのイベントは、Application_BeginRequest または Application_AuthenticateRequest です。

上記のイベントを制限して、各リクエストではなく、サイトへの最初の訪問時にのみ特定のコードを実行する方法はありますか?

または、私のマスター ファイルを使用する方法はありますか?

どんな提案も非常に役に立ちます。

乾杯

4

1 に答える 1

0

自分で実装してみませんか?あなたが言及したように、イベント Application_BeginRequest があります。私は次のトリックを行うかもしれないと思います:

protected void Application_BeginRequest(object sender, EventArgs e)
{       
    string session_param_name = "SOME_SESSION_ID";        

    if (HttpContext.Current.Request.Form[session_param_name] == null)
    {
         //Count
    }
    else if (HttpContext.Current.Request.QueryString[session_param_name] == null)
    {
        //Also count
     }
}
于 2013-10-09T18:44:57.820 に答える