我有一个配置了大量用户群的网站,配置了asp.net 2.0表单身份验证。在用户通过表单身份验证登录之前,是否可以在他们使用的计算机上检索Windows登录名/用户帐户名?
非常感谢
答案 0 :(得分:4)
当然可以 - 通过向您的系统添加其他Web应用程序。这大致是我如何做到的:
您的主要网络应用使用表单身份验证。在窗体登录页面上,确定位于本地LAN上的任何用户(检查IP地址),将它们重定向到使用Windows身份验证的另一个应用程序。在第二个应用程序中,您可以确定用户(假设浏览器配置为自动将凭据发送到您的应用所在的区域),然后设置第一个应用可以读取的cookie,并将用户重定向回原始应用
这确实有效。
答案 1 :(得分:1)
不幸的是没有 - 如果用户没有登录,他们将匿名浏览,因此服务器不知道。没有办法识别它们。
一旦他们登录,如果您正在使用模拟,请使用WindowsIdentity.GetCurrent().Name
。但是,对于表单身份验证,没有直接的方式向浏览器询问他们的Windows凭据,因为他们甚至可能不运行Windows!
答案 2 :(得分:1)
只有在Web应用程序中使用Windows身份验证,然后仅在用户登录时才可以执行此操作 您所关注的信息类型不会作为Web请求的一部分发送(非常正确),因此Web服务器不知道。
答案 3 :(得分:0)
不在之前(不是来自服务器)。
根据您使用的Auth类型以及网站的配置方式,您可以让他们使用Windows详细信息登录。
答案 4 :(得分:0)
请参阅Mixing Forms and Windows Security in ASP.NET on Microsoft's MSDN。
与@TheObjectGuy答案的主要区别在于,不是使用2个网站,而是通过将IIS配置为仅使用单个网站中的集成Windows身份验证而在单个网站中完成所有操作。 page(WinLogin.aspx)。