【问题标题】:impersonation for windows service using config file使用配置文件模拟 Windows 服务
【发布时间】:2010-11-16 14:57:31
【问题描述】:

目前,为了以固定用户身份运行 windowsservice,我们在 windows 服务上设置了登录属性(我们在其中指定了运行的用户名和密码)。

但是我愿意拥有这个以固定用户身份运行windows服务的特性 作为配置文件中提到的网络应用程序中的模拟。

请提出您的想法,这是一种可行的方法 实现这一点的简单方法。

【问题讨论】:

    标签: .net windows-services impersonation


    【解决方案1】:

    是的,您可以使用WindowsIdentity.Impersonate 模拟用户。但是,按照您的建议去做是一个非常糟糕的主意。您需要想出一种安全的方式将用户凭据存储在您的 app.config (DPAPI maybe) 中。

    【讨论】:

      【解决方案2】:

      你的第二段没有意义......

      如果我理解您的问题,最好使用服务属性对话框上的登录选项卡指定您希望在其下运行服务的用户帐户。

      【讨论】:

      • Martin,不是在属性对话框中指定帐户,而是可以在 app.config 中提及它们并使用该帐户来运行服务。
      • 恐怕我不知道。但是,这种方法确实需要您在 app.config 中输入密码。我看不出使用登录选项卡对你有什么实际作用(除了创建一个安全漏洞)
      【解决方案3】:

      不,服务的会话在加载可执行文件之前就已登录。指定运行服务的帐户的唯一方法是通过服务用户名和密码。

      但是,您可以使用 LogonUser 和 WindowsIdentity.Impersonate 让您的服务中的线程作为特定用户运行。正如 JP 所说,尽管它必须安全地存储 - 使用加密并且可能在注册表中的安全位置而不是在 app.config 文件中。

      您还可以使用 WCF 或 AuthenticatedStream 等模拟客户端。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 1970-01-01
        相关资源
        最近更新 更多