我有一个 Intranet 网站,当我没有从我的域 ID 登录时,浏览器会自动生成域 ID 用户名和密码的弹出窗口。
现在的问题是当我关闭我的浏览器并且其他用户使用我的计算机并打开相同的浏览器时,浏览器将不会再次为域 ID 用户名和密码生成弹出窗口并直接使用我的域 ID 打开 Intranet 网站。
当我注销或关闭浏览器时,有什么方法可以终止与 AD 服务器的会话。?
提前致谢
我有一个 Intranet 网站,当我没有从我的域 ID 登录时,浏览器会自动生成域 ID 用户名和密码的弹出窗口。
现在的问题是当我关闭我的浏览器并且其他用户使用我的计算机并打开相同的浏览器时,浏览器将不会再次为域 ID 用户名和密码生成弹出窗口并直接使用我的域 ID 打开 Intranet 网站。
当我注销或关闭浏览器时,有什么方法可以终止与 AD 服务器的会话。?
提前致谢
Active Directory 服务器无法管理客户端与服务器的连接。它所做的只是管理用户凭据和可访问性。要在活动目录中切换角色或用户,您实际上必须注销 Windows 并重新打开。
这是一篇完美的文章,解释了如何捕获登录到您网站的活动目录用户:
http://msdn.microsoft.com/en-us/library/ff647076.aspx
要复制您希望用户登录您的站点的方式,最好的办法是使用表单身份验证,而不是使用您的 Active Directory 凭据。表单身份验证的心态是,您可能有多个用户使用同一台计算机登录您的网站。Windows 身份验证的心态是只有一个用户可以登录计算机,因此默认情况下使用该人的凭据登录 Intranet 网站。
您可以让客户端发送请求以断开与服务器的连接。
http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx
您还可以尝试在登录期间管理用户的会话:
http://msdn.microsoft.com/en-us/library/ah635ck5
Abandon 方法似乎可以完成您希望它完成的工作。
旁注:作为使用 Windows 身份验证的程序员,您不必担心额外的安全层,但使用表单身份验证时,您必须牢记安全措施。
我不确定这是否适用于 AD 服务器,但您可以在浏览器关闭时删除会话 cookie。
window.onunload=function()
{
setCookie("YourCookieId","",-1);
}
同样,在注销时,您可以将到期时间设置为 -1 年。
HttpCookie cookie2 = new HttpCookie("YourCookieId", "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);