是否可以通过运行asp.net表单身份验证的站点获取Windows登录名?

时间:2010-01-07 11:43:43

标签: asp.net windows authentication forms mixed

我有一个配置了大量用户群的网站,配置了asp.net 2.0表单身份验证。在用户通过表单身份验证登录之前,是否可以在他们使用的计算机上检索Windows登录名/用户帐户名?

非常感谢

5 个答案:

答案 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)。