0

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

但我愿意拥有作为固定用户运行 Windows 服务的功能,作为配置文件中提到的 Web 应用程序中的模拟。

请对此提出您的想法,这是一种可行的方法吗?

4

3 回答 3

1

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

于 2009-08-04T11:52:37.043 回答
0

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

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

于 2009-08-04T09:29:08.003 回答
0

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

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

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

于 2009-08-04T23:17:38.187 回答