我有一个特殊的网站,可以使用IIS7 ServerManager创建新网站:
using (ServerManager serverManager = new ServerManager())
{
// create new site logic here
}
此特殊网站必须在系统帐户下运行才能管理IIS7。有没有办法创建一个特殊的Windows用户设置为站点的应用程序池标识,并授予该用户访问IIS7但不是完整系统访问权限的特殊权限?
我之所以这样做,是为了让网站的进程标识尽可能少的权限。
如果问题不明确,请告诉我:)
答案 0 :(得分:0)
如果您创建一个新帐户作为应用程序池标识,则需要使用此代码为其提供正确的权限,然后再添加创建网站所需的权限:
导航至:
C:\的Windows \ Microsoft.NET \框架\ V2.0.50727
然后做:
aspnet_regiis -ga DomainOrMachineName \ AccountName
见这里 http://msdn.microsoft.com/en-us/library/ff649309.aspx#paght000009_step2
答案 1 :(得分:0)
这实际上取决于该应用程序应该能够做什么,如果您只想创建一个新站点,您可以创建一个帐户并授予对%windir%\ system32 \的读写权限INETSRV \设置\的applicationHost.config。说过这么做要非常小心,因为一旦他们可以写入该文件,他们就可以执行强大的操作,例如,添加一个以System身份运行的新应用程序池,并且此时能够使用强大的身份运行他们的代码因为它得到了。
如果您想让它们回收,请启动&停止等等,对于网站,应用程序池,应用程序域等运行时对象,那么您将需要其他步骤,但我不建议这样做。
此外,如果您实际上设置了加密属性(例如应用程序池或虚拟目录中的密码),那么您还需要为加密密钥授予权限,但我也建议不要这样做,因为那样做让他们能够解密密码。