本地计算机除外的 IIS Windows 身份验证

本地计算机除外的 IIS Windows 身份验证

我有一个 PHP 站点(默认网站)和一个 ASP.NET 站点(默认网站下的应用程序)一起运行。

我已经为默认网站设置了 Windows 身份验证,一切正常。问题是我的 ASP.NET 应用程序创建了一个 Web 请求 - (HttpWebRequest)WebRequest.Create(url)- 从 PHP 应用程序中提取信息。没有身份验证时一切正常,但使用 Windows 身份验证时会收到 (401) 未授权响应。

我发现我可以传递凭据,request.Credentials = new NetworkCredentials(user, pwd, domain);但我真正想找到一种方法让 PHP 应用程序允许同一服务器(甚至站点)上的其他应用程序通过。

我如何告诉默认网站允许这些请求?

答案1

我认为您无法绕过 IIS 身份验证。毕竟,这就是它的用途 :)

你可以做的是设置 PHP 网站两次, 一次身份验证,并且没有

在网站上没有身份验证,请确保设置 IP 限制,仅允许本地主机要求

答案2

只需删除Windows 身份验证来自默认网站,并在您的应用程序的默认网站下进行设置。

当然,这是假设您不需要在默认网站(PHP)上进行身份验证

答案3

创建您想要从.net 应用程序访问的 php 页面(或多个页面)的副本(例如名为 x_internal.php)并(仅在这些页面上)将它们设置为允许匿名访问并使用 IP 过滤将访问限制为本地 IP,以防止非本地客户端的直接访问。

我以前做过类似的事情,没有任何问题。

答案4

这看起来很像是微软关闭安全漏洞所导致的问题。

如果这是我见过的同一问题,http://support.microsoft.com/kb/896861会为您提供足够的详细信息来解决问题。就我而言,这只是一个编辑注册表的问题。

相关内容