2009-08-17 273 views
1

寻找跨浏览器的方式将用户从使用Windows身份验证的网页上注销。跨浏览器窗口窗体注销?

+0

有人能告诉我什么是“使用Windows身份验证的网页”吗? – chronos 2009-12-07 19:02:55

+0

@Chronos,.NET支持2种身份验证模式 - Windows和Forms。 Windows使用用户登录到计算机的帐户,表单使用标准的用户名/密码字段。谷歌应该告诉你其余的。 – LiamB 2009-12-08 09:36:39

+0

@Pino - 谢谢!我从来没有开发过特定于Windows的网站,因此我缺乏知识。 – chronos 2009-12-08 11:55:09

回答

2

没有最终的解决方案。这是所有类型www认证的已知限制。

您可以发送一个虚假的未经授权的答案来再次请求密码。这种方法可以帮助您模拟注销。

Response.Status = "401 Unauthorized" 
Response.AddHeader "WWW-Authenticate", "Negotiate" 
Response.AddHeader "WWW-Authenticate", "NTLM" 
+0

有趣。迄今为止最好的。 – Will 2009-12-08 16:30:43

0

关闭浏览器是我发现的唯一的跨浏览器方式。这是我们不得不切换到使用Forms身份验证的原因之一。

+1

您必须是指关闭所有浏览器实例 – Oded 2009-12-03 22:01:16

+3

实际上,他意味着所有浏览器窗口都在同一个进程中 - 这实际上意味着取决于它是哪个浏览器。 – AviD 2009-12-08 00:37:37

0

登录用户出什么点?您是否希望他们不得不关闭浏览器并再次访问该网站并自动登录?

如果它只是一个纯粹的视觉伪装,那么我会使用cookie来指示用户是否需要显示登录屏幕。它与认证或授权无关,仅仅是它们是否“登录”的指标。

当他们注销并转到登录屏幕时会发生什么?你是否希望他们实际上必须输入他们的凭据?什么是“注销后登录”用户故事?

+0

重点在于处理用户必须登录网站才能使用的情况,他们不允许共享会话(用户Hurr无法同时登录两次),并且用户经常关闭浏览器而不注销,这意味着他们必须等到他们的会话超时后才能重新登录。 – Will 2009-12-09 19:08:21