记住我登录Cookies

时间:2012-06-28 12:34:10

标签: c# asp.net session

我试过用饼干记住我,但我不能成功。抛出null引用异常。 我该如何解决?

页面加载方法

   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;
     }

1 个答案:

答案 0 :(得分: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上。 这是一个非常糟糕的主意。