2

我正在使用 MVC-3 开发一个 Web 应用程序

我想给特定 Windows 域的用户一些特殊权限;因此我必须确定请求是否来自该特定域。

请注意,我使用的是表单身份验证。

我知道我可以通过跟踪用户的 IP 地址来做到这一点。但是有没有办法直接获取域名呢?

例如,如果用户ADomain\AUsername在 windows 机器上登录,有没有办法得到ADomain

4

2 回答 2

2

答案是,也许,有时。首先,只有 Internet Explorer 将凭据传递到服务器。其次,服务器必须与客户端在同一个域中,第三,两者之间不能有任何代理或其他东西。计算机和客户端也必须在同一网络上。

尽管如此,它仍然只在某些时候有效。什么版本的 IIS?如果是 IIS7 或更高版本,那么还有其他问题,您无法将表单身份验证和 windows 身份验证结合起来。如果您使用的是 IIS6,那么它可能可以完成,但这是一个巨大的痛苦。

实际上,我不会打扰.. 节省用户输入用户名和密码的工作量太大了。

于 2012-08-08T05:32:08.600 回答
2

您可以使用请求对象的 UrlReferrer 获取域名。

string Domain Name = Request.UrlReferrer.Host;

此外,如果您想在您的应用程序中检查请求是否来自不同的域,请尝试使用您自己的应用程序 URL 的主机名来验证 URL 引用者的主机名。请使用以下代码

(if Request.Url.Host != Request.UrlReferrer.Host)
{
}
于 2013-09-06T18:30:37.980 回答