1

まず第一に、私のばかげた質問を許してください。ASP.netとC#は初めてです。asp.netでセッションを理解するためにグーグルで検索したとき、「カスタムセッションマネージャー」に関する多くの議論に出くわしました。

カスタムセッションマネージャーを使用する必要があるのはなぜですか?以下の例のようなセッションを使用できますか?

//Default.aspx

Session["name"] = "My Name";

それから

//NextPage.aspx

Label1.Text = "Hello" + (string)Session["name"];
4

3 に答える 3

3

別のセッションマネージャを使用して、セッションがメモリに保存されている場所の動作を、ファイルまたはデータベースに変更できます。

于 2013-03-07T01:45:38.580 に答える
1

いいえ、「カスタムセッションマネージャー」は必要ありません。私はASP.NETを10年近く使用しており、その用語に出くわすことはありません。

の使用例Sessionは受け入れられます(への呼び出し.ToString()はそれほど必要ではありませんString、 null値を防ぐために直接キャストできます)。

Session一般的に、マルチサーバーWebファームまたは負荷分散クラスターで作業している場合にのみ心配する必要があります。

于 2013-03-07T01:45:48.137 に答える
1

アプリケーション画面間を移動するすべての情報を管理するために、SessionManagerというクラスを作成する必要がある場合があります。

多くの場合、これらの変数はウィザード、またはそのような情報を削除または修正するために終了が正しく必要なプロセスで使用されます。このようにして、オブジェクトまたは変数のグループによってそれを行うことができます。

私の提案は、それを作成して賢く使用することです(サーバーの(iis)メモリを使用していることを忘れないでください)

アイデアサンプル:

public class SessionManager
{
    //Groups of variables
    public enum Groups
    {
        Users,
        Processes
    }

    //Value keys
    private static int USERID
    {
        get { return USERID"; }
    }

    private static string USERGUID
    {
        get { return "USERGUID"; }
    }

    //Properties        
    public String UserGuid
    {
        get { return this.session[USERGUID]; }
        set { this.session[USERGUID] = value; }
    }

...

    //Finnish using values
    public bool Finnish(Groups group)
    {
        switch (group)
        {
            case Groups.Users:
                this.Session.Remove(USERID);
                this.Session.Remove(USERGUID);
                break;
            case Groups.Processes:
                this.Session.Remove(UP);
                this.Session.Remove(DOWN);
            default:
                return false;
        }
        return true;
    }

...

}

お役に立てれば!

于 2013-07-12T00:17:12.790 に答える