仅执行IIS7规定的Windows用户帐户

时间:2009-11-11 01:19:18

标签: iis-7

我有一个Web应用程序,它执行IIS 7规定(使用Microsoft.Web.Administration.dll)来创建我们的Web和ftp站点。当我使用管理员帐户运行它时,它可以正常工作。

我想创建一个用于模拟的Windows用户帐户,该帐户只执行这些Web配置过程,而不必与服务器的管理员角色相同。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您应该将应用程序分为三个部分:

Windows服务

这将托管WCF或Remoting应用程序。您希望在此处将需要特权访问权限的代码放入您的系统。例如,创建和删除网站。在具有足够权限的帐户下运行此服务,以使用Microsoft.Web.Administration执行操作。

受信任的包装或代理程序集

这只是一个安装在GAC中的签名包装程序集。它的作用是传递来自低信任Web应用程序的调用,以在上面的服务中运行的代码中执行特权操作。使用AllowPartiallyTrustedCallers属性标记程序集(如果您的服务器配置为部分信任),并使用[PermissionSet(SecurityAction.Assert, Unrestricted=true)]标记需要访问远程服务的任何类。

前端应用程序(或Web服务)

这是应用程序的界面(无论是带有GUI还是Web服务的Web应用程序)。在具有足够权限的应用程序池中运行此命令,例如IUSR或类似帐户。理想情况下,您也应该在部分信任下运行它。

您的Web应用程序/服务引用GAC中的Trusted Wrapper程序集,该程序集又引用了Windows服务中运行的远程处理或WCF应用程序。

使用这种分层方法意味着您通过门户访问仅在Windows服务中运行的特定特权操作来锁定。

这种方法在Dominick Baier的“Developing More-Secure Microsoft ASP.NET 2.0 Applications”的附录C中得到了很好的阐述。我完全建议你复印一份。