IIS7权限概述 – ApplicationPoolIdentity

我们最近升级到IIS7作为一个核心的Web服务器,我需要在权限方面的概述。 以前,当需要写入文件系统时,我会让AppPool用户(networking服务)访问目录或文件。

在IIS7中我看到,默认情况下,AppPool用户被设置为ApplicationPoolIdentity 。 所以,当我检查任务pipe理器,我看到一个名为“WebSite.com”的用户帐户正在运行IIS进程(“Website.com”是IIS中的网站的名称)

但是,如果我尝试使用它来授予权限,则此用户帐户不存在。 那么,我该如何确定哪个用户也可以授予权限呢?

编辑================================================= =============================

请参阅下面的屏幕截图中的问题。 我们的网站(www.silverchip.co.uk)以用户名SilverChip.co.uk运行。 但是,当我添加权限时,该用户已经存在!

在这里输入图像描述

=================================请参阅AppPool图像

在这里输入图像描述

ApplicationPoolIdentity实际上是在IIS7中使用的最佳实践。 这是一个dynamic创build的,无特权的账户。 要为特定应用程序池添加文件系统安全性,请参阅IIS.net的“应用程序池标识” 。 快速版本:

如果您的应用程序池被命名为“DefaultAppPool”(如果名称不同,则只需replace下面的文本)

  1. 打开Windows资源pipe理器
  2. select一个文件或目录。
  3. 右键单击该文件并select“属性”
  4. select“安全”选项卡
  5. 点击“编辑”,然后点击“添加”button
  6. 点击“位置”button,并确保您select本地机器。 (如果服务器属于一个,则不是 Windows域)
  7. 在“input要select的对象名称:”文本框中input“ IIS AppPool \ DefaultAppPool ”。 (不要忘记把“DefaultAppPool”改成你的应用程序池。)
  8. 点击“检查姓名”button,然后点击“确定”。

请记住在parsing名称“IIS AppPool \ DefaultAppPool”时只使用服务器的本地名称而不是域名(只是提醒一下,因为这让我有些尴尬): 在这里输入图像描述

在Windows Server 2008(r2)上,无法通过“属性” – >“安全”将应用程序池标识分配给文件夹。 您可以通过pipe理命令提示符使用以下内容来执行此操作:

 icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R) 

对IIS默认configuration授予对IIS AppPool \ YourAppPoolName用户的访问权限可能不够

在我的情况下,我仍然有错误HTTP错误401.3 –在添加AppPool用户后未经授权 ,并且只有在向IUSR用户添加权限后才解决。

这是必要的,因为默认情况下,使用IUSR完成匿名访问。 您可以设置另一个特定用户,应用程序池或继续使用IUSR,但不要忘记设置适当的权限。

验证选项卡

致谢这个答案: HTTP错误401.3 – 未经授权

只是为了增加混淆,(Windows资源pipe理器)有效权限对话框不适用于这些login。 我有一个使用传递身份validation的网站“Umbo4”,并在站点根文件夹中查看用户的有效权限。 检查名称testingparsing了名称“IIS AppPool \ Umbo4”,但有效权限显示用户在文件夹上没有任何权限(所有checkbox未选中)。

然后,我使用“资源pipe理器安全性”选项卡将该用户从文件夹中明确排除 如预期的那样,这导致网站发生HTTP 500.19错误。 然而,有效权限与以前完全一样。

顶部答案乔恩·亚当斯

以下是如何为PowerShell人员实现这一点

 $IncommingPath = "F:\WebContent" $Acl = Get-Acl $IncommingPath $Ar = New-Object system.security.accesscontrol.filesystemaccessrule("IIS AppPool\DefaultAppPool","FullControl","ContainerInherit, ObjectInherit", "None", "Allow") $Acl.SetAccessRule($Ar) Set-Acl $IncommingPath $Acl 

我通过创build一个名为IUSER的新用户并使用密码修复了我所有的asp.net问题,并添加了Network Service和User Groups。 然后创build所有的虚拟网站和应用程序设置身份validationIUSER与它的密码..设置高层次的文件访问,包括IUSER和BAM它至less修复了3-4个问题,包括这个..

戴夫