繁体   English   中英

通过ASP.NET启动服务需要什么权限?

[英]What permissions are needed to start a service through ASP.NET?

我想知道让用户在我们的服务器上启动服务需要什么权限。

情况如下,我们网站上的一些人可以在服务器上启动某个服务(Windows 2008和IIS7)。 到目前为止,我的工作方式是指定我用我的用户帐户创建的应用程序池(msdn 的模拟方法由于某种原因不起作用)。 但是,现在我想将该用户帐户更改为仅有权启动和停止服务的用户帐户(以及让他这样做所需的一切)。

该网站使用 ASP.NET 和 C# 编写。 我使用 ServiceController 来启动和停止我的服务。

我应该为该用户分配哪些权限?

编辑:我只是想在这里清除一些东西。 我设法让这个东西通过应用程序池工作(尽管它不能通过调试器工作) 但它只适用于属于管理员组的用户,这不是我想要的。 我想指定一个只能通过网站启动和停止服务的特殊用户。 那么我需要什么特权? 请具体。

编辑 2:我发现了为什么我的服务无法在调试器中启动。 我没有以管理员权限运行 Visual Studio。 我现在觉得很愚蠢。无论如何,问题仍然存在,因为我仍然需要具有正确权限的特殊用户。

任何评论将不胜感激,亲切的问候, Floris Devriendt

您必须在 web.config 中将身份模拟设置为 true,如果您使用的是 windows 身份验证,则需要在 IIS 中进行设置。 如果您在两者之间使用 WCF 服务,则可能需要查看Impersonation in WCF。

(术语抱怨)-您不应该查看特权,因为它们适用于整个机器。 您应该查看权限

这里有一个关于允许远程用户启动和停止服务的答案。 您可能需要运行相同的步骤来允许您的网站在特定权限下的帐户,即:

  • 复制scmanager上的 IA 用户权限,以允许非交互式用户访问服务 controller,以及
  • 针对特定服务为您的用户添加适当的权限。

这两个操作都使用sc命令行工具。 希望您可以根据自己的具体情况一起婴儿床。 就像是:

sc sdset scmanager D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CCLCRPRC;;;S-1-5-3-3127463467463)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

其中S-1-5-3-3127463467463是网站帐户的 SID,并且:

sc sdset Alerter D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPLOCRRC;;;PU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCLCSWLOCRRCWPRP;;;S-1-5-3-3127463467463)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

其中 Alerter 是特定服务的名称,而S-1-5-3-3127463467463又是网站帐户的 SID。

(不确定是否分解这些命令以使它们在 SO 上更具可读性 - 在命令行中运行时它们需要没有换行符)

您必须将服务分层的权利授予您用于应用程序池的用户。

  • 单击开始,指向设置,单击控制面板,然后双击管理工具。
  • 双击服务
  • 在登录选项卡上,单击本地系统帐户,然后单击应用。
  • 在“常规”选项卡上,单击“开始”以重新启动服务。
  • 退出服务工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM