会话Cookie无法保存
为了防止用户多次登录,想通过一个在会话期间存在的Cookie值log来实现。首次登录时将该Cookie的值设为 "Yes ". 在登录首页中通过判断客户端Cookie中是否有log的值,且值是否为 "Yes "来判断用户是否已经登录,是则转去登录后的首页,否则要求用户输入用户名与密码。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie ck= Request.Cookies[ "log "];
if (ck != null && ck.Value.Equals( "Yes "))
{
Response.Redirect(要转去的页面的URL);
}
}
Session.Clear();
txtUser.Focus();
}
首次登录后保存Cookie的程序段:
Response.Cookies[ "log "].Value = "Yes "; //设置已登录标志
//Response.Cookies[ "log "].Expires = DateTime.Now.AddDays(1);
若将保存时的有效期设置语句加上,则Cookie可以保存,但是不加时间的话,按资料上说应该在会话存续期间都是有效的,可是为什么不能保存呢?开始怀疑是IE的设置问题,可是将Internet选项->隐私->高级中选中覆盖,并接受所有的Cookie,且允许会话Cookie,之后重启了IE,但是依然无效。
------解决方案--------------------做在线用户表,用户登录后就加入该表,用户退出或超时就从该表删除