代码之家  ›  专栏  ›  技术社区  ›  mallows98

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

  •  1
  • mallows98  · 技术社区  · 16 年前

    我有一个Web应用程序,它执行IIS 7规定(使用microsoft.web.administration.dll)来创建我们的网站和FTP站点。当我使用管理员帐户运行这个时,它工作正常。

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

    我怎样才能做到这一点?

    1 回复  |  直到 11 年前
        1
  •  2
  •   erlando    16 年前

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

    Windows服务

    这将承载一个WCF或远程处理应用程序。您希望将需要对系统进行特权访问的代码放在这里。例如,创建和删除网站。在有足够权限使用执行操作的帐户下运行此服务 Microsoft.Web.Administration .

    可信包装或代理程序集

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

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

    这是应用程序的接口(无论是带有GUI的Web应用程序还是Web服务)。例如,在自己的应用程序池中运行它,但权限仅足以执行 IUSR 或者类似的说法。理想情况下,您还应该在部分信任的情况下运行它。

    Web应用程序/服务引用了GAC中的受信任包装程序集,而GAC又引用了Windows服务中运行的远程处理或WCF应用程序。

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

    这种方法在多米尼克拜尔的附录C中有很好的介绍。 Developing More-Secure Microsoft ASP.NET 2.0 Applications '.我强烈建议你买一份。

    推荐文章