Определение, является ли пользователь входом или выходом из системы. - PullRequest
0 голосов
/ 09 марта 2011

Добрый день всем. Я студент 4-го курса колледжа, и я новичок в asp, в настоящее время я разрабатываю сайт для своего OJT. Я создал форму для входа в систему для своего сайта, теперь я запутался, что делать с этим. Мне нужно определить, был ли пользователь вошел в систему или вышел. Когда пользователь ввел точное имя пользователя и пароль, он перейдет к этой строке кодов, в которой будет указываться, есть ли у пользователя выход из пчел или нет.

       HttpCookie cookie = new HttpCookie("isLog");
       cookie.Value = "1";
       DateTime dtNow = DateTime.Now;
       TimeSpan tsMinute = new TimeSpan(1, 1, 0, 0);
       cookie.Expires = dtNow + tsMinute;
       Response.Cookies.Add(cookie);

        Response.Redirect("manageService.aspx");

И у меня есть эта функция, чтобы определить, входил ли пользователь в систему или нет.

protected Boolean isLog()
{
    //String strCookieName = Request.QueryString["cookie"].ToString();
    //Grab the cookie
    HttpCookie cookie = Request.Cookies["isLog"];
    String tmp = cookie.Value.ToString();
    return (tmp != null);
}

Теперь моя проблема в том, что, хотя я и ввел правильное имя пользователя и пароль после перезагрузки страницы, он все равно будет запрашивать имя пользователя и пароль (отправляет меня на страницу входа). Я уже установил значение для файла cookie isLog, но он все равно возвращает неверную информацию. Пожалуйста, просветите меня в этом материале .. Большое вам спасибо ..

Любая помощь высоко ценится,

-нонон

1 Ответ

0 голосов
/ 09 марта 2011

Проблема в том, что когда вы получаете значение куки

cookie.Value.ToString()

вы ВСЕГДА получаете ссылку на строку, поэтому tmp НИКОГДА не будет нулевым.

Что вам нужно сделать, это вернуть (tmp == "1")

.Value - это строковое свойство (оно возвращает строку), поэтому вам не нужно его использовать .ToString ().

Также следует помнить, что Request.Cookies ["COOKIETHATDOESNTEXIST"] не сгенерирует исключение, если cookie не существует. Однако вызов свойства .Value для несуществующего объекта вызовет исключение.

Попробуйте сначала проверить на ноль или просто:

HttpCookie cookie = Request.Cookies["isLog"];

bool isLoggedIn = false;
if(cookie != null && cookie.Value == "1")
{
   isLoggedIn = true;
}
return isLoggedIn;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...