确定用户是否已登录或注销

时间:2011-03-09 08:01:26

标签: asp.net cookies login

大家好日子。我是第四年的大学生,我是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);
}

现在,我的问题是,即使我在重新加载页面后输入了正确的用户名和密码,它仍然会询问用户名和密码(将我发送到登录页面)。我已经为“isLog”cookie设置了一个值,但它仍然返回了错误的信息。 请赐教这个东西..非常感谢你..

非常感谢任何帮助,

-nonon

1 个答案:

答案 0 :(得分:0)

问题是当你获得cookie的值时

cookie.Value.ToString()

你总是得到一个字符串引用,所以tmp永远不会为空。

您应该做的是返回(tmp == "1")

.Value是一个字符串属性(它返回一个字符串)所以你不必使用.ToString()它。

另请注意,如果cookie不存在,Request.Cookies [“COOKIETHATDOESNTEXIST”]将不会抛出异常。但是,在不存在的属性上调用.Value属性将引发异常。

首先尝试检查null,或者只是简单地检查:

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

bool isLoggedIn = false;
if(cookie != null && cookie.Value == "1")
{
   isLoggedIn = true;
}
return isLoggedIn;