好的。在这里,我们尝试在 Windows Server 2008 R2 中的 IIS 7.5 上设置经典 ASP 网站。在网站的根目录下有一个名为 dbc 的文件夹,它有一个文件,用于在处理每个页面时读取和写入某些信息。
问题是,如果我授予 IUSR 写入权限和 IIS_IUSRS 写入权限或 DefaultAppPool 写入权限,我会收到“对路径 'E:..\websiteroot\dbc\filename.txt' 的访问被拒绝”
但是,如果我授予每个人对该 dbc 文件夹的写访问权限,那么我不会收到任何错误,一切似乎都很完美。
更多信息:该网站在经典管道模式下运行,启用匿名身份验证(也许它是唯一启用的身份验证)。我尝试使用 IUSR 帐户以及应用程序池身份进行匿名身份验证。就我而言,ApplicationPoolIdentity 是网站身份验证的身份。我们使用 COM+ 进行文件 I/O。和经典的 ASP Server.CreateObject 来实例化一个对象。COM+ 作为网络服务运行。
想法?我不想向所有人授予写入权限。我错过了什么吗?
解决:这就是我所做的。
我的名为 CipherDemo 的网站在 IIS 7.5 中的 AppPoolIdentity 下运行,可以通过 Identity IIS AppPool\CipherDemo 定位。我使用 ICACLS 授予该文件夹的 RW 权限。
而实际执行文件 I/O 的 COM+ 在网络服务标识下运行。当我使用 Process Monitor 跟踪访问被拒绝错误时,它发现网络服务对该文件夹只有读取权限。
我使用 ICACLS "foldername" /grant:r "NT AUTHORITY\NETWORKSERVICE":(OI)(CI)RXW /T 授予对该文件夹的写访问权限。
并解决了它。
我的意图是因为该网站作为 CipherDemo Identity 运行,这将是用于通过 COM+ 访问文件的帐户。但是令人尴尬的是发现 COM+ 仍然可以在它自己的身份边界上工作。
我想查看安装在机器级别的证书,如果我打开 certmgr.msc。
我要的是,开始| 运行| certmgr.msc(带有一些命令行选项 - 如果有的话)来查看机器级别的证书。当前默认为当前用户。
在 IIS 7/Win 2K8 上,当我导入证书时,它会被添加到 HKLM。我期待 certmgr.msc 控制台具有类似的功能。
如果我打开 certmgr.msc,我想打开机器级别的证书,而不是打开当前的用户证书。当我将证书导入受信任的根时,我希望将其添加到机器级别,而不仅仅是用户级别。
转到 mmc 并添加管理单元有点错误。如果我有一个 (IIS6/Win2K3) 而不是 (IIS 7/Win 2K8) - 我将如何使用 certmgr.msc 将证书添加到机器级存储而不是用户级存储?
如果这个问题听起来不合理,那就是我想要实现的目标。想法/想法表示赞赏。
根据 mil bauer 的回答,于2015 年 10 月 30 日进行编辑- 如果您使用的是 Win 8/Server 2012 R2,请尝试使用 certlm.msc 打开证书 - 本地计算机。