在同一服务器上使用Windows身份验证的IIS反向代理被拒绝访问

时间:2016-04-22 11:09:00

标签: c# asp.net-mvc iis windows-authentication kerberos-delegation

我已经在这里查看了其他一些带有Windows身份验证帖子的IIS反向代理,但他们似乎并不是我想要做的事情。希望有人能够帮助或发现我没做或做错的事情。

我有一台服务器,其网站在端口80上运行,我需要在其上展示许多其他网络应用程序。我无法创建新的主机名,因此我在站点中创建了一个指向我的Web应用程序的虚拟目录,但是根站点使用的是.net2.0应用程序池,它必须保留为.net2.0,而我的ASP.NET MVC应用程序都需要4.0应用程序池。根据web.config继承问题,这不起作用,我无法更改root中的web.config以忽略传播到子web.configs - 到目前为止我? ; - )

简而言之,我现在在我的端口80网站上有一个虚拟目录,它充当了端口81上另一个站点的反向代理,这对于匿名连接很有用。我已经使用一个简单的HTML页面对其进行了测试,我可以访问它,并且网址重写正在处理HTML页面中的链接,到目前为止一切都很好。

现在我需要在端口81站点上启用Windows身份验证,因此我按照与MSDN网站上这些链接类似的说明为我正在使用的域帐户配置SPN(DOMAIN) \ testaccount)和其他IIS配置: -

link 1 link 2

问题在于,我现在得到的只是好的错误信息: -

  

访问被拒绝。描述:访问时出错   提供此请求所需的资源。服务器可能不是   配置为访问请求的URL。

     

错误消息401.2。:未授权:由于服务器登录失败   组态。验证您是否有权查看此目录   或基于您提供的凭据和身份验证的页面   Web服务器上启用的方法。联系Web服务器   管理员提供额外帮助。

     

----------------------------------------------- ---------------------------------版本信息:Microsoft .NET Framework版本:4.0.30319;   ASP.NET版本:4.0.30319.34280

我尝试创建一个测试aspx页面,它只是将服务器变量输出到响应中,但即使这样也无效。

我无法找到其他任何可以尝试的内容,最初我认为我必须对Kerberos进行排序,以便将详细信息从虚拟目录传递到端口81上的网站,但MSDN帖子说这不是必需的,只是SPN的。

任何想法?

1 个答案:

答案 0 :(得分:1)

事实证明这是非常简单的事情,而且我因为没有检查而愚蠢! : - )

我花了几天时间试图弄清楚为什么这不起作用,不知道为什么我之前没有尝试但是我改变了它运行的应用程序池以使用.net2.0然后我的测试aspx页面工作了! ?!

如果您单击根目录服务器节点本身,在“ISAPI和CGI限制”功能设置下将.net4.0 DLL设置为“不允许”,但.net2.0 DLL为',则在IIS管理器中显示允许'!我刚刚启用了.net4.0,将应用程序池改回来,然后就可以了。