2012-06-28 2 views
0

Я попытался запомнить меня с помощью файлов cookie, но я не могу добиться успеха. Вызывает исключение null refernce. Как я могу это исправить?Запомнить меня Войти с Cookies

в методе Pageload

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"] равно null, ваш if будет генерировать исключение, которое вы описываете.

Другое предложение: если вы используете Forms Auhentication, вы можете использовать встроенные классы для поддержки своих логинов и связанных функций. Восстановите колесо по отношению к безопасности в не очень хорошей стратегии.

Например, я вижу, что вы храните пароль в виде обычного текста в файле cookie. Это очень плохая идея.

+0

+1 для заметок в хранилище паролей обычного текста. Хлоп. – Scott