目前,要以固定用户身份运行windowsservice,我们在Windows服务上设置登录属性(我们指定要运行的用户名和密码)。
但我愿意将此服务作为固定用户运行Windows服务 作为配置文件中提到的Web应用程序中的模拟。
请将您的想法放在这上面,这是一种可行的方法 实现这一目标的简便方法。
答案 0 :(得分:1)
是的,您可以使用WindowsIdentity.Impersonate来模拟用户。但是,做你所建议的事情是一个非常糟糕的主意。您需要提供一种安全的方法来将用户凭据存储在app.config(DPAPI maybe)中。
答案 1 :(得分:0)
你的第二段毫无意义......
如果我理解了您的想法,最好使用服务属性对话框中的登录标签指定您希望在其下运行服务的用户帐户。
答案 2 :(得分:0)
不,在可执行文件加载之前,服务的会话已登录。指定服务运行的帐户的唯一方法是通过服务用户名和密码。
但是,您可以使用LogonUser和WindowsIdentity.Impersonate将服务中的线程作为特定用户运行。正如JP所说,虽然它必须安全存储 - 使用加密,可能在注册表中的安全位置,而不是在app.config文件中。
您还可以使用WCF或AuthenticatedStream等模拟客户端