IIS 7.5 MVC应用程序中的访问被拒绝

时间:2012-10-24 14:38:40

标签: asp.net-mvc security iis-7.5

我正在使用过去完美工作的测试服务器上的MVC应用程序。它在第二个应用程序用于登录的服务器上创建帐户。它使用凭证存储和PrincipalContext和UserPrincipal对象来创建这些帐户。

我没有使用此应用程序的测试版本数月或可能差不多一年。现在,当我使用该应用程序创建一个帐户时,我收到以下错误:

  

访问被拒绝。   ASP.NET无权访问所请求的资源。考虑   授予对ASP.NET请求的资源访问权限   身份。 ASP.NET具有基本进程标识(通常是   IIS 5上的{MACHINE} \ ASPNET或IIS 6和IIS 7上的网络服务,以及   IIS 7.5上配置的应用程序池标识,如果使用的话   该申请不是冒充。如果申请是   冒充通过,身份将是   匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的用户   请求用户。

     

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,   选择“属性”,然后选择“安全”选项卡。单击“添加”进行添加   适当的用户或组。突出显示ASP.NET帐户,和   选中所需访问的框。

我查看了匿名访问,但此应用程序的生产版本也有一条规则拒绝匿名访问,它运行正常。此应用程序从未使用模拟,即使它正在工作,我听说通常不建议授予对ASP.NET的显式访问权限。我可以通过Visual Studio使应用程序在本地工作,但部署到测试的版本继续提供此错误。我不会重新发布要测试的网站,但也许这是剩下的唯一选择?是否有任何明显的(但不是我)可能在安全设置中发生变化导致这种情况?我还在研究,没有运气。

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要为具有适当访问级别的ApplicationPool标识提供服务帐户。当您使用Studio时,它会使用您的用户帐户进行访问,因此它几乎是一个给定的。当应用程序安装到IIS上时,它使用尽可能低的可用访问级别,而这根本不够。不建议您将其打开,但为此特定目的建立有限的访问服务帐户将允许应用程序运行,而不必危及系统或个人帐户。