5

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

非常感谢

4

5 回答 5

4

这当然是可能的——通过向您的系统添加另一个 Web 应用程序。以下是我的大致做法:

您的主要 Web 应用程序使用表单身份验证。在表单登录页面上,任何被确定在本地 LAN 上的用户(检查 IP 地址),将他们重定向到另一个使用 Windows 身份验证的应用程序。在第二个应用程序中,您可以确定用户(假设浏览器配置为自动将凭据发送到您的应用程序所在的区域),然后设置您的第一个应用程序可以读取的 cookie,并将用户重定向回原始应用程序.

这确实有效。

于 2010-01-09T13:23:29.500 回答
1

仅当您在 Web 应用程序中使用 Windows 身份验证并且只有当用户已登录时,这才有可能。
您所追求的信息类型不会作为 Web 请求的一部分发送(非常正确),因此不知道网络服务器。

于 2010-01-07T12:09:14.507 回答
1

不幸的是,没有 - 如果用户没有登录,他们正在匿名浏览,因此服务器不知道。没有办法识别它们。

一旦他们登录,如果您使用模拟,请使用WindowsIdentity.GetCurrent().Name. 但是,对于表单身份验证,无法直接向浏览器询问其 Windows 凭据,因为它们甚至可能没有运行 Windows!

于 2010-01-07T11:46:56.983 回答
0

请参阅Microsoft 的 MSDN 上的Mixing Forms and Windows Security in ASP.NET

@TheObjectGuy 答案的主要区别在于,不是使用 2 个网站,而是通过将 IIS 配置为仅在“单个”页面 (WinLogin.aspx) 中使用集成 Windows 身份验证,这一切都在单个网站中完成。

于 2012-03-14T20:32:53.960 回答
0

Not BEFORE no(不是来自服务器)。

但是,根据您使用的身份验证类型以及站点的配置方式,您可以让他们使用其 Windows 详细信息登录。

于 2010-01-07T11:44:54.413 回答