我正在尝试使用forms.signout,但有时它不会注销用户,他仍然可以通过网站进行分析。
我该如何解决这个问题?我还配置了web.config表单身份验证,但它仍然无效。
我正在使用FormsAuthentication来验证通过他登录的用户。
谢谢!
答案 0 :(得分:1)
我不知道原因是什么,但你可能会考虑/尝试
他们是否真的能够访问服务器生成的页面,或者他们只是回到本地缓存版本?当它们导致具有代码以检查它们是否经过身份验证的回发时,会发生什么情况呢?它会失败吗?我认为后来的意思是他们已经注销,但查看登录页面的缓存版本,在这种情况下,您希望指示客户端不要使用实例缓存页面:
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetNoStore();
您可以尝试手动设置Cookie过期,但这是一个黑客
FormsAuthentication.SignOut(); Context.Response.Cookies.Item(FormsAuthentication.FormsCookieName).Expires = Date.Now; 的Response.Redirect( “〜/ Somewhere.aspx”);
答案 1 :(得分:0)
用户是否在其受信任的站点或Intranet站点中拥有域(或父域)?我最近遇到了一些用户经过身份验证的问题,但在这种情况下是匿名的。在我的情况下,也可能是父网站一次被配置为允许Windows集成身份验证。我删除后删除了,但它似乎没有帮助问题。我还没有重新启动IIS,看看这是否会产生影响。我已经检查了用户是否经过身份验证和非匿名,以确保呈现视图的正确部分。这实际上更准确,即使我的登录代码应该阻止匿名登录。