1

我正在使用曾经完美运行的测试服务器上的 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 使应用程序在本地工作,但部署到测试的版本继续给出此错误。我不会重新发布该网站进行测试,但也许这是唯一的选择?安全设置中是否有任何明显的(但对我而言不是)可能会导致这种情况发生变化?我仍在研究没有运气。

谢谢!

4

1 回答 1

2

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

于 2012-10-24T14:45:05.550 回答