0

私はWebアプリケーションに取り組んでおり、ユーザーがログインしたときにUserIDをセッションに保存する必要があります。セッションの作成方法を知っています。

Session["UserID"] = myvalue;

しかし、私はそれをすべてのページで使用したいと考えています。そのため、コードを記述したり、すべてのページでセッションの可用性を確認したりしたくありません。Global.asax ファイルは役に立ちますか?

セッションを書き込むSession_Start()と、すべてのページでアクセスできるようになりますか? 有効期限が切れている場合は、ログイン ページに戻ります。

適切なガイダンスが必要です。ありがとう

4

2 に答える 2

0

ログイン以外のすべてのページに継承されるベースページを作成することを強くお勧めします。この方法では、1つのページでのみセッション変数コードを作成しますが、そのコードには、それを継承するすべてのページからアクセスできます。

小さな例で編集:

ユーザーが認証されたら、セッション変数を設定する必要があります

現在、あなたのページはおそらく次のようになっています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

あなたがする必要があるのは、例えば次のような別のクラスファイルbasepage.csを作成することです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public class basepage : System.Web.UI.Page
    {
        protected int GetItem()
        {
            return Convert.ToInt32(Session["myvalue"]);
        }
    }
}

元のページは次のようになります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : basepage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int whatINeed = GetItem();
        }
    }
}

ご覧のとおり、ページを継承する代わりに、ベースページを継承していますSystem.Web.UI.Page(次にベースページを継承しますSystem.Web.UI.Page)。

于 2012-11-03T18:00:32.037 に答える
0

セッションを処理し、それをプロパティとして返すために、別のクラスとして記述していました。クラス内のすべての条件を記述できます。

于 2012-11-03T18:08:52.920 に答える