关于iis 7:IIS7权限概述 – ApplicationPoolIdentity

IIS7 Permissions Overview - ApplicationPoolIdentity

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

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

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

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

有关屏幕截图中的问题,请参阅下文。我们的网站(www.silverchip.co.uk)使用用户名SilverChip.co.uk运行。但是当我添加提交时,这个用户确实存在!

enter image description here

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

enter image description here


ApplicationPoolIdentity实际上是在IIS7 +中使用的最佳实践。它是一个动态创建的,无特权的帐户。要为特定应用程序池添加文件系统安全性,请参阅IIS.net的"应用程序池标识"。快速版:

如果应用程序池名为"DefaultAppPool"(如果命名方式不同,则只需替换下面的文本)

  • 打开Windows资源管理器
  • 选择文件或目录。
  • 右键单击该文件,然后选择"属性"
  • 选择"安全"选项卡
  • 单击"编辑",然后单击"添加"按钮
  • 单击"位置"按钮,确保选择本地计算机。 (如果服务器属于一个域,则不是Windows域。)
  • 在"输入要选择的对象名称:"文本框中输入"IIS AppPool DefaultAppPool"。 (不要忘记将"DefaultAppPool"更改为您为应用程序池命名的任何内容。)
  • 单击"检查名称"按钮,然后单击"确定"。

  • 在解析名称时,请记住使用服务器的本地名称,而不是域名

    1
    IIS AppPool\DefaultAppPool

    (只是一个提醒,因为这让我吵了一下):enter image description here


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

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


    使用IIS默认配置时,访问IIS AppPool YourAppPoolName用户可能还不够。

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

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

    authentication tab

    致谢此答案:HTTP错误401.3 - 未经授权


    A部分:配置应用程序池

    假设应用程序池名为"MyPool"
    从IIS管理器转到应用程序池的"高级设置"

  • 向下滚动到"身份"。尝试编辑该值将弹出一个对话框。选择"内置帐户",然后选择"ApplicationPoolIdentity"。

  • 在"身份"下面几行,您应该找到"加载用户个人资料"。该值应设置为"True"。

  • B部分:配置您的网站

  • 网站名称:SiteName(仅举例)
  • 物理路径:C: Whatever(只是一个例子)
  • 以...形式连?樱河τ贸绦蛴没Вù萆矸菅橹ぃ?ㄒ陨仙柚每梢栽贗IS管理器中站点的"基本设置"中找??
  • 配置基本设置后,在站点主控制台的"IIS"下查找"身份验证"配置。打开它。您应该看到"匿名身份验证"选项。确保它已启用。然后右键单击并"编辑..."它。选择"应用程序池标识"。
  • PA>
    C部分:配置文件夹
    PA>
    有问题的文件夹是C: Whatev

    PB>

  • 转到"属性" -"共享" -"高级共享" -"权限",然后选中"共享此文件夹"
  • 在同一个对话框中,您会找到一个"权限"按钮。点击它。
  • 将打开一个新对话框。点击"添加"。
  • 将打开一个新对话框"选择用户或组"。在"从此位置"下,确保名称与本地主机名称相同。然后,在"输入对象名称"下,键入"IIS AppPool MyPool"并单击"检查名称",然后单击"确定"
  • 为"MyPool"用户授予完全共享权限。应用它并关闭文件夹属性
  • 再次打开文件夹属性。这一次,转到安全性 - 高级 - 权限,然后单击添加。顶部会有一个选项'选择一个校长',或者选择一个其他选项来选择一个用户。点击它。
  • "选择用户或组"对话框将再次打开。重复步骤4。
  • 向"MyPool"用户提供所需或全部权限。
  • 选中"替换所有子对象权限..."并应用并关闭。
  • PA>
    您现在应该可以使用浏览网站

    PB>


    热门回答乔恩亚当斯

    以下是如何为PowerShell人员实现此功能

    1
    2
    3
    4
    5
    $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


    我只是通过创建一个名为IUSER的新用户并修改了网络服务和用户组来修复我所有的asp.net问题。然后使用其密码创建所有虚拟站点和应用程序集身份验证到IUSER ..设置高级文件访问权限包括IUSER和BAM它至少修复了3-4个问题,包括这个问题..

    戴夫


    只是为了增加混淆,(Windows资源管理器)有效权限对话框不适用于这些登录。
    我有一个使用传递身份验证的站点"Umbo4",并查看了站点根文件夹中用户的有效权限。
    检查名称测试解析了名称"IIS AppPool Umbo4",但有效权限显示用户对该文件夹完全没有权限(未选中所有复选框)。

    然后,我使用Explorer Security选项卡显式地从文件夹中排除了此用户。
    这导致站点失败,出现HTTP 500.19错误,如预期的那样。然而,有效权限看起来与以前完全一样。