2012-06-28 159 views
0

我試着用cookie記住我,但我不能success.it拋出空引用異常。 我該如何解決它?記住我登錄Cookie

在頁面加載方法

if (!string.IsNullOrEmpty(Request.Cookies["mail"].Value) && !string.IsNullOrEmpty(Request.Cookies["pass"].Value)) { 

     TextBox1.Text = Request.Cookies["mail"].Value; 

     TextBox2.Text = Request.Cookies["pass"].Value;} 
    } 
中的CheckedChanged方法

if (CheckBox1.Checked == true) 
    { 
     Response.Cookies["mail"].Value = TextBox1.Text; 
     Response.Cookies["pass"].Value = TextBox2.Text; 
    } 

回答

3

變化

if (!string.IsNullOrEmpty(Request.Cookies["mail"].Value) && 
    !string.IsNullOrEmpty(Request.Cookies["pass"].Value)) 

通過

if (Request.Cookies["mail"] != null && 
    Request.Cookies["pass"] != null && 
    !string.IsNullOrEmpty(Request.Cookies["pass"].Value) 
    !string.IsNullOrEmpty(Request.Cookies["mail"].Value)) 

如果Request.Cookies["mail"]Request.Cookies["pass"]爲空,則您的if會拋出您描述的異常。

另一個建議:如果您使用的是Forms Auhentication,則可以使用內置類來支持您的登錄和相關功能。在安全方面重塑車輪並不是一個好策略。

例如,我看到您在cookie上以純文本形式存儲密碼。 這是一個非常糟糕的主意。

+0

+1用於注意純文本密碼存儲。讓人驚訝。 – Scott