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