Asp.net 确定用户是登录还是注销

Asp.net 确定用户是登录还是注销,asp.net,cookies,login,Asp.net,Cookies,Login,大家好。我是一名四年级的大学生,我是asp的新手,我目前正在为我的OJT开发一个网站。我已经为我的网站创建了一个登录表单,现在我对如何使用这个表单感到困惑。我需要确定用户是否已登录或注销。。 当用户输入准确的用户名和密码时,它将转到这一行代码,如果用户已注销或未注销,将在其中显示身份 HttpCookie cookie = new HttpCookie("isLog"); cookie.Value = "1"; DateTime dtNow = Date

大家好。我是一名四年级的大学生,我是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

问题是,当您获取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;

你为什么不使用内置的会员资格?然后它就像
User.Identity.IsAuthenticated
Gotcha一样简单!谢谢你,屠夫。:-)酷np!如果答案正确,只需单击此问题旁边的勾号