2014-01-24 95 views
0

我有一個asp網站的這個非常簡單的登錄系統:簡單的登錄失敗隨機

在Default.aspx頁面:

protected void LoginClicked(object sender, EventArgs e) 
{ 
     string userName = ConfigurationManager.AppSettings["UserName"].ToString(); 
     string password = ConfigurationManager.AppSettings["Password"].ToString(); 
     string sanitizeUsername =uname.Text; 
     string sanitizePassword = upass.Text; 
     //System.Diagnostics.Debug.WriteLine(sanitizeUsername +" "+ sanitizePassword); 

     if (sanitizePassword == password && sanitizeUsername == userName) 
     { 
      // System.Diagnostics.Debug.WriteLine("Session is true......redirecting"); 
      Session["IsLogin"] = true; 
      Response.Redirect("Page1.aspx"); 
     } 
     else 
     { 
      Response.Write("Invalid Login"); 
     } 
} 

每個其他頁面:

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

在web.config文件中:

<appSettings> 
    <add key="UserName" value="aaa"/> 
    <add key="Password" value="bbb"/> 
</appSettings> 

它工作10%的時間,我不明白爲什麼。當它不起作用時,在按鈕點擊之後,密碼和用戶名字段中輸入的文本消失,所有這一切都會消失。我知道,出於安全考慮,這可以通過許多其他方式來完成,但我想知道爲什麼這不是100%的時代?

+0

我假設你只是在配置文件中存儲密碼作爲臨時措施,直到你寫入後端?你試過.Equals()而不是? – Liath

+0

剛剛嘗試過。同樣的故事,文字消失,沒有任何事情發生!對此感到生氣。 – FeliceM

+0

問題在哪裏產生?在你的登錄屏幕上或當你加載另一個頁面?你能加載你的asp.net頁面嗎? – User999999

回答

1

如果有人在這個問題的解決方案的興趣:

我注意的是,只有在完整的URL被包括

http://mysite/Default.aspx 

如果url確實沒有頁面顯示登錄工作 - 顯示頁面名稱../Default.aspx上述登錄無效。 解決的辦法是在默認頁以下行更改:

<form id="form1" runat="server""> 

<form id="form1" runat="server" action="Default.aspx"> 

由於外部資源,注:Kunal,爲提示。