2010-12-20 67 views
1

我編輯的問題如何將會話變量與C#中的字符串進行比較?

它仍然無法正常工作,用戶需要寫附錄然後按確定在登錄,什麼都不會發生

這裏是登錄(vb.net)

Partial Class login 
Inherits System.Web.UI.Page 

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Session("passcode") = TextBox1.Text 
    Response.Redirect("Default.aspx") 

End Sub 
End Class 

這裏是默認頁面C#

public partial class _Default : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["passcode"] == "appendix") 
    { 
     Response.Write("OK !"); 
    } 
    else 
    { 
     Response.Redirect("login.aspx"); 
    } 
} 


} 

回答

9

你可能是指

Session["passcode"] == "Appendix" 

在C#(不像VB),==是等於運算符和=是賦值運算符。

+0

或者,也許'會話[ 「密碼」]。等於( 「附錄」)' 或'會話[ 「密碼」 ] .Equals(「Appendix」,StringComparison.CurrentCultureIgnoreCase)' – 5arx 2010-12-20 12:30:15

+0

@ 5arx:如果會話變量爲空,前者將失敗,這不太可能是意圖。 'Session'索引器是'object'類型的。你必須將其轉換爲'string'來使用'Equals'的後者重載。在這兩種情況下,'「Appendix」.Equals'都會用'null'解決問題。 – 2010-12-20 12:32:06

+0

@Mehrdad - 同意。我會經常首先檢查空會話變量。 「爲了簡潔省略」:-) – 5arx 2010-12-20 12:41:26

1

對象類型值投射到一個字符串

((string)Session["loggedInUserType"]) == "Administrator" 

參見here

相關問題