最近在开发网页时,用到了用户验证机制,我用到了COOKIE,但是我碰到了一个问题,每次登陆后,电脑中就留下了我的COOKIE中的记录,下次打开该网页时不用我登陆,自动系统会辨认出我的信息。那如果别人用同一台电脑登陆,就可以用我的帐号登陆网站了,我怎样实现当关闭网页时能自动删除COOKIE呢,因为我按网页的设计的退出键时是可以删除COOKIE的,但是我想要不按那个按钮,只是关闭网页,也可以删除我的COOKIE,我应该怎么实现呢?还有关闭网页会有什么事件发生?
我在Page_Unload中调用了删除cookie的函数,但关闭页面仍旧没删除。Page_Unload不会在关闭页面时执行吗?还有很多大型网站,如网易都可以在我关闭他的网页时自动清除我的登陆信息,象这种机制怎么实现哦,求高手指教,感激不尽!寝室快断电了,明早六点来给分了!

解决方案 »

  1.   

    不用设置自动删除,你设置cookie的时效就可以了.比如说"一小时","一天"等等都可以.
      

  2.   

    设置一个没有时间的COOKIE即可.关闭窗口就自动删除了.
      

  3.   

    ------设置一个没有时间的COOKIE即可.关闭窗口就自动删除了.
    我试了,没有反应啊
    哦,还有我用的删除COOKIE的函数是系统的FormsAuthentication.SignOut();
    我是在WEB.CONFIG里
    <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20"//这里删除没用的
                 
        />
      

  4.   

    上面哪个Timeout 是Session变量的超时时间。不是cookie的把
      

  5.   

    恩,不过我对这个机制也不是很懂哦,因为没有COOKIE的创建和设定的
    Context.User.Identity.IsAuthenticated这种机制是用到COOKIE的 吧,可是我怎么控制他哦
      

  6.   

    FormsAuthentication.SetAuthCookie( Number.Text, true )
    这是我在登陆时把用户名写进COOKIE的语句,可是这种方法哪里可以设定COOKIE的过期时间哦
      

  7.   

    设置一个没有时间的COOKIE即可.关闭窗口就自动删除了.注意上面的話,只有当这个页面关闭时Cookie才会被删除;即使你在页面有一个logout的按钮其中执行 Response.Cookies.Clear()也不能清除Cookie.
      

  8.   

    设置一个没有时间的COOKIE即可.关闭窗口就自动删除了.注意上面的話,只有当这个页面关闭时Cookie才会被删除;即使你在页面有一个logout的按钮其中执行 Response.Cookies.Clear()也不能清除Cookie.
    -------------------恩,不过我是在FormsAuthentication.SetAuthCookie( Number.Text, true )中设立COOKIE的哦,这里没法设他的过期时间啊
      

  9.   

    FormsAuthentication.SetAuthCookie( Number.Text, true )最后这个参数true就是时间的问题了。true就是永久保存cookie啊.改成false就是临时cookie
      

  10.   

    同上,默认的Cookies没有时间限制的都是加载在内存中的,浏览器一关就没了如果希望增加时限就会自动存储到缓存中,产生一个文本文件
      

  11.   

    FormsAuthentication.SetAuthCookie( Number.Text, true )最后这个参数true就是时间的问题了。true就是永久保存cookie啊.改成false就是临时cookie
    -------------------
    恩,哦,难怪啊,谢谢楼上的
    不过我想问一下FormsAuthentication.SetAuthCookie( Number.Text, true ),在这里把TRUE改为FALSE会不会有什么不良后果哦,会不会影响我后面的身份验证,也就是说这里true改false后是不是只是COOKIE的时间过期长短问题,而功能上是一样的?
      

  12.   

    这种情况下应当用session,而不是cookie.
      

  13.   

    用COOKIES的话只能用设置COOKIES的过期时间来控制COOKIES
    如果要达到关闭浏览器即可清空数据的效果,是需要SESSION会话来控制的