我正在做一個網站,我需要維護登錄用戶的會話。有不同的頁面,所以必須維護每個頁面的會話。我在主頁上的輸入按鈕的單擊事件中將值傳遞給我的會話變量。 代碼第一次正常工作,但是當用戶從另一個頁面重定向到主頁時,會話將變爲空。我很困惑在哪裏進行會議,以保留所有頁面的價值。ASP.NET,會話維護頁面加載和回發
這裏是我的代碼:根據您的問題
protected void Page_Load(object sender, EventArgs e)
{
//Session["UserName"] = null;
//Session["UserRoles"] = null;
if (!Page.IsPostBack) //if page is not postback then here
{
Session["UserName"] = null;
Session["UserRoles"] = null;
if (Session["UserRoles"] != null && (String)Session["UserRoles"] == "Admin")
{
divLoggedInMember.Visible = true;
lblLoggedinUser.Text = "Welcome" + " " + Session["UserName"] + "(Admin)";
}
else if (Session["UserRoles"] != null && (String)Session["UserRoles"] == "member")
{
divLoggedInMember.Visible = true;
lblLoggedinUser.Text = "Welcome" + " " + Session["UserName"];
}
}
else //if page postback then here
{
if (Session["UserRoles"] != null)
{
if ((String)Session["UserRoles"]=="Admin")
{
divLoggedInMember.Visible = true;
lblLoggedinUser.Text = "Welcome" + " " + Session["UserName"] + "(Admin)";
}
else
{
divLoggedInMember.Visible = true;
lblLoggedinUser.Text = "Welcome" + " " + Session["UserName"];
}
}
}
}
protected void btnenter_Click(object sender, ImageClickEventArgs e)
{
try
{
Session["UserName"] = null;
Session["UserRoles"] = null;
DataTable dt = new DataTable();
dt=getUserInfo(txtUserId.Text.Trim(),txtPassword.Text.Trim());
if (dt.Rows.Count == 0)
{
Response.Write("<script> alert('User Not Exist')</script>");
}
else
{
strUserName = dt.Rows[0]["User_Name"].ToString();
// strUserName = txtUserId.Text.Trim();
struserRoles = dt.Rows[0]["USER_ROLE"].ToString();
Session["UserName"] = (String)strUserName;
Session["UserRoles"] = (String)struserRoles;
if (Session["UserRoles"] != null && (String)Session["UserRoles"]=="Admin")
{
divLoggedInMember.Visible = true;
lblLoggedinUser.Text = "Welcome" + " " + Session["UserName"] + "(Admin)";
}
else if (Session["UserRoles"] != null && (String)Session["UserRoles"] == "Member")
{
divLoggedInMember.Visible = true;
lblLoggedinUser.Text = "Welcome" + " " + Session["UserName"];
}
Response.Redirect("MemberPage.aspx", false);
}
}
catch (Exception ex)
{
ex.Message.ToString();
}
}
根據你的問題,我不太清楚你瞭解會話行爲如何在ASP.NET中工作。您不必在同一網站中的任何頁面之間執行任何操作。 – 2013-03-02 15:42:18
嗨大衛, 感謝您的回覆, 我是ASP.Net的初學者,所以我請求你對我很容易,但我知道會話保持在ASP.Net,實際上我需要知道究竟應該在哪裏我把檢查我的會話變量,以區分管理員或成員用戶,並保持該會話值? – user2126933 2013-03-02 16:34:42
不是問題!其實,我認爲@Hussein Roncevic的回答非常好 - ASP。NET有能力爲您管理大部分此類內務,它將使您的代碼更容易維護。 – 2013-03-02 16:47:25