2011-06-21 34 views
2

您好我在Session中存儲用戶名有問題。在登錄頁面上,我將用戶名存儲到會話中。登錄頁面上的用戶輸入憑據,然後在默認頁面上重定向。我需要在課堂中默認訪問會話中的變量存儲。會話的ASP.NET問題/重定向到頁面

Logon.aspx

<script runat="server"> 
    void Login_Click(object sender, EventArgs e) 
    { 
       Session["user"] = tbUserName.Text; 

       //You can redirect now. 
       Response.Redirect(FormsAuthentication.GetRedirectUrl(tbUserName.Text, 
false)); 
} 
</script> 

secod主頁是在這裏:

Default.aspx的-Default.aspx.cs

public partial class Default : Page, 
    IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{ 
     string userName = (string) (Session["user"]); 
} 

,但結果是,用戶名是空。

網絡配置是在這裏:

<sessionState cookieless="true" regenerateExpiredSessionId="true" /> 

謝謝你的建議。

+0

在第二頁中,是否在「Page_Load」中有該片段? –

+0

你應該發佈完整的代碼來找出問題? –

回答

1

爲什麼不從的HttpContext HttpContext.Current.User.Identity.Name

編輯直接得到它:我猜你正在嘗試在網頁級別,而不是在page_load或其他地方得到它。這就是爲什麼你沒有獲得會話價值。

我希望下面將爲您

protected void Page_Load(object sender, EventArgs e) 
{ 
    string userName = (string) (Session["user"]); 
} 
1

工作,如果片段是在模塊級(如在評論中提到由巴拉R)會話狀態可能已尚未設置。嘗試使用屬於頁面生命週期一部分的方法(如page_load等)。

0

更新:這是不正確的。

當您重定向時,您正在丟失(無Cookie)會話。無Cookie會話保留在URL中,並且在您明確重定向時會丟失,因此第二頁上的會話中沒有任何內容。

+0

根據Microsoft文檔,除非重定向URL是絕對路徑,否則無cookie會話將保留,因此相對路徑應該安全地保持會話不變。這意味着它將取決於重定向目的地。 – Suncat2000

+0

我站好了。 –