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

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

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

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

请看appool图片:


当前回答

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

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

Open Windows Explorer Select a file or directory. Right click the file and select "Properties" Select the "Security" tab Click the "Edit" and then "Add" button Click the "Locations" button and make sure you select the local machine. (Not the Windows domain if the server belongs to one.) Enter "IIS AppPool\DefaultAppPool" in the "Enter the object names to select:" text box. (Don't forget to change "DefaultAppPool" here to whatever you named your application pool.) Click the "Check Names" button and click "OK".

其他回答

乔恩·亚当斯的最佳回答

下面是如何为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

在Windows Server 2008(r2)上,您不能通过属性->安全性为文件夹分配应用程序池标识。你可以使用以下命令通过管理命令提示符来完成:

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

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

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

Open Windows Explorer Select a file or directory. Right click the file and select "Properties" Select the "Security" tab Click the "Edit" and then "Add" button Click the "Locations" button and make sure you select the local machine. (Not the Windows domain if the server belongs to one.) Enter "IIS AppPool\DefaultAppPool" in the "Enter the object names to select:" text box. (Don't forget to change "DefaultAppPool" here to whatever you named your application pool.) Click the "Check Names" button and click "OK".

更令人困惑的是,(Windows资源管理器)有效权限对话框对这些登录不起作用。 我有一个网站“Umbo4”使用直通身份验证,并在网站根文件夹中查看了用户的有效权限。 检查名称测试解析了名称“IIS AppPool\Umbo4”,但有效权限显示用户对文件夹没有任何权限(所有复选框都未选中)。

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

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

戴夫