【问题标题】:How to determine if the request is coming from a particular windows domain如何确定请求是否来自特定的 Windows 域
【发布时间】:2012-08-08 05:25:03
【问题描述】:

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

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

请注意,我正在使用表单身份验证。

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

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

【问题讨论】:

标签: asp.net-mvc-3 windowsdomainaccount


【解决方案1】:

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

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

实际上,我不会打扰.. 让用户免于输入用户名和密码实在是太费劲了。

【讨论】:

  • 要省去用户输入用户名和密码的麻烦。 是的,是的。我想我应该避免它。
【解决方案2】:

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

string Domain Name = Request.UrlReferrer.Host;

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

(if Request.Url.Host != Request.UrlReferrer.Host)
{
}

【讨论】:

  • 不是 OP 要求的。
最近更新 更多