如何授予ASP.NET写入Windows 7文件夹的权限?

时间:2013-02-01 19:37:03

标签: asp.net iis-7.5

我有一个新的Win7工作站,我正在尝试让ScrewTurn Wiki在机器上运行。我的STW安装使用文件系统选项来存储其数据,因此我需要为安装网站的文件夹中的ASP.NET辅助进程提供写入权限。

然而,我似乎无法在Win7中提出工作进程的名称,以便将其添加到文件夹的权限。在XP中它是ASPNET_WP,如果我没记错的话,但这不是它在Win7中的名字。

有人可以告诉我吗?

编辑添加:

回应@Dragan_Radivojevic,这是所讨论的应用程序池的样子(名为ScrewTurnWiki):

IIS7 Application Pools

身份是“ApplicationPoolIdentity”

4 个答案:

答案 0 :(得分:124)

从安全的角度来看,给所有IIS_USRS组写入权限是一个坏主意。您不需要这样做,您只能向运行应用程序池的系统用户授予权限。

如果你正在使用II7(我猜你这样做),请执行以下操作。

  1. 打开IIS7
  2. 选择您需要修改权限的网站
  3. 转到基本设置,查看您正在使用的应用程序池。
  4. 转到应用程序池并从#3
  5. 中找到应用程序池
  6. 查找用于运行此应用程序池的系统帐户(标识列)
  7. 导航到IIS中的存储文件夹,选择它并单击编辑权限(在右侧的操作子菜单下)
  8. 打开安全标签,仅为您在#3
  9. 中标识的用户添加所需的权限

    注意#1:如果您在#3中看到ApplicationPoolIdentity,则需要像IIS AppPool {application_pool_name}一样引用此系统用户。例如IIS AppPool \ DefaultAppPool

    注意#2:添加此用户时,请确保在“选择用户或组”对话框中设置正确的位置。这需要设置为本地计算机,因为这是本地帐户。

答案 1 :(得分:31)

我知道这是一个旧线程但是为了进一步扩展这里的答案,默认情况下IIS 7.5会创建应用程序池身份帐户以运行其下的工作进程。添加文件权限时,您无法像普通用户帐户一样搜索这些帐户。要将它们添加到NTFS权限ACL中,您可以键入应用程序池标识的完整名称,它将起作用。

应用程序池身份帐户的处理方式略有不同,因为它们被视为虚拟帐户。

此外,应用程序池标识的用户名是“IIS AppPool \ application pool name”,因此如果它是应用程序池DefaultAppPool,则用户帐户将为“IIS AppPool \ DefaultAppPool”。

如果您打开计算机管理并查看本地组IIS_IUSRS的成员,则可以看到这些。将帐户添加到NTFS权限ACL时,不需要附加到它们末尾的SID。

希望有所帮助

答案 2 :(得分:13)

我的直接解决方案(因为我找不到ASP.NET工作进程)是给IIS_IUSRS写入(即修改)权限。这很有效。我似乎记得在WinXP中我必须专门给予ASP.NET工作进程写入权限才能完成此任务。也许我的记忆是错误的,但无论如何......

@DraganRadivojevic写道,从安全角度来看,他认为这是危险的。我不反对,但由于这是我的工作站,而不是网络服务器,它似乎相对安全。无论如何,他的答案更好,是因为没有为AppPool用户指定正确的域而追逐失败路径后最终解决的问题。

答案 3 :(得分:0)

完整命令如下所示,请注意引号

icacls“ c:\ inetpub \ wwwroot \ tmp” / grant “ IIS AppPool \ DefaultAppPool:F”