1

c# を使用して asp.net のセッション値にイベント ハンドラーを追加できますか? ユーザーのログイン時とログアウト時にデータベースを更新する予定で、セッション値でログインとログアウトを制御していますが、タイムアウトなど、ユーザーのクリックなしでセッションが終了する可能性があるため、" isloggedin" セッション値。

4

2 に答える 2

2

これは global.asax で処理する必要があります。

protected void Session_Start(Object sender, EventArgs e) 
{
 //your code
}

protected void Session_End(Object sender, EventArgs e) 
{
 //your code
}
于 2012-06-14T19:44:29.637 に答える
1

Session_Endこのメソッドは、global.asax に実装できます。そこで、セッションから必要な情報を取得し、必要なことを行います (ユーザーのデータベースにログアウト フラグを設定するなど)。

これは私が行うことの例ですが、ニーズに合わせて調整できます。

void Session_End(object sender, EventArgs e)
{
    SessionPlayerContext context = (SessionPlayerContext)this.Session[Constants.SessionKeys.UserContext];
    if (context != null)
        PlayerManager.SetPlayerOnlineStatus(context.PlayerID, false);
}

重要なのは、(ユーザーがログインしたときに) 以前にセッションに保存したユーザー オブジェクトを取得していることです。それが存在する場合は、(PlayerManager を介して) データベースでログアウトされていることを示すフラグをユーザーに付けます。

で確認するだけでなく、Session_Endユーザーが物理的にログアウトする場所でも確認する必要があります。

ユーザーをログイン済みとして設定する場合は、ユーザーが物理的にログインしたときにそれを処理します。

于 2012-06-14T19:46:20.543 に答える