想做个logout的功能,网上搜索后发现document.execCommand("ClearAuthenticationCache","false");可以清除登录信息,但是这个只能用在IE上,非IE浏览器不支持。
请问如何在非IE浏览器上实现类似功能?

解决方案 »

  1.   


    可能我的描述得不太清楚吧。
    我用的不是在网页里登录,而是用web登陆框。浏览器在登录一次后,会一直保留这个认证信息,每次HTTP请求都带有这个,所以我即使在后台清除了一些信息,浏览器下一次来的HTTP请求里仍然有认证信息,还是会自动登录的,除非浏览器关闭。IE下用document.execCommand("ClearAuthenticationCache","false");可以清除浏览器自动保存的认证信息,所以执行后,再次打开网页,就不会有认证信息了,web服务器就会提示认证出错,然后浏览器又会弹出那个登陆框,这样就达到了logout的功能了。
      

  2.   


    这个方法我尝试过,不好用。
    因为浏览器可能会尝试几次都返回401错误后才出现登陆框,不同的浏览器尝试的次数还不一样。拒绝的次数少了,达不到logout的效果,次数多了,可能让人以为密码输入错了。
      

  3.   

    不用form提交登录改成ajax登录浏览器不就不会记录了
      

  4.   

    我现在用的本来也不是form方式提交,而是用HTTP的认证登陆框
      

  5.   

    试一下返回401错误并强制关闭浏览器。
    然后你试验时最好有两台机,用虚拟机也行,因为本机的话会集成NTLM的window验证,除非你仅仅是用basic认证。当然如果你的服务器不是windows那就当我后面那句没说过吧。
      

  6.   

    可惜我用的就只是basic认证啊,而且web服务器是在单片机上运行的,功能比windows差远了。
      

  7.   

    是这样子的,我这里有个现成的产品也是用http认证登录的,它有个退出,但代码我是看不到的,不过它退出后总是要求关闭当前窗口,而且我试过如果不关闭(即关闭的提示选否)那其实还是没退出。你就试一下返回401错误并强制关闭浏览器。