2011-12-06 155 views
-2

我正在使用SQL Express 2008和Visual Studio 2010.會話不工作

我使用會話做了一個簡單的登錄表單。我希望如果會話爲空,用戶應該無法進入所需的頁面。我寫了下面的代碼:

public void btnsubmit_CLICK(object sender, EventArgs e) 
{ 
    if (TextBox1.Text =="admin" && TXTID.Text =="admin") 
    { 
     Session["user"] = "admin"; 
     Response.Redirect("generate_report.aspx"); 
    } 
    else 
    { 
     lblmsg.Text = "user name Or password is not correct!"; 
    } 

下一頁:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["user"] != "admin") 
    {  
     Response.Redirect("Default.aspx"); 
    } 

這是工作的罰款,如果我在本地使用,但是當我加載它在客戶端服務器上並不在所有的工作。爲什麼如此?

+0

您是客戶端服務器在進程會話狀態中使用的Web場嗎? –

+0

我無法對您遇到的問題發表評論,但您確實不應該使用自己的身份驗證系統。 AspNetMembershipProvider(http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx)爲您提供免費所需的一切。 – spender

+4

「* id完全不起作用*」並不意味着什麼。請確定錯誤(s)。 – Otiel

回答

0

你有沒有更換你所使用本地到您的服務器 如果沒有/無法 檢查此標籤下方

<sessionState mode="[Off|InProc|StateServer|SQLServer|Custom]" 
    timeout="number of minutes"> 
</sessionState> 

也選中此得到體現在IIS管理國家的web.config中。

+0

不,我會試試! – konika

+0

@konika得到了ny soln? –

+0

尚未??我nt得到哪種模式,我應該使用? – konika

0

您可能正在使用生產IIS上的網絡花園以及進程內會話。這意味着IIS會在您的服務器上產生多個工作進程。

因此,每個請求都可以由任意工作進程處理,但進程內會話只能在同一進程中使用。

您可能會將工作進程的數量減少到一個。但是,正如spender所評論的那樣,您不應該創建自己的身份驗證系統。

+0

!我想將頁面重定向到另一個頁面,但它保持在同一頁面 – konika

+0

這個答案(或任何其他)對你有幫助嗎? –

+0

no none of the已幫助我,直到現在.. :( – konika