日期:2014-05-18  浏览次数:20464 次

会话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,但是依然无效。


------解决方案--------------------
做在线用户表,用户登录后就加入该表,用户退出或超时就从该表删除