2011-03-29 132 views
1

目前我有一个用C#(以LocalSystem身份运行)编写的windows服务,它使用DirectoryEntry添加用户/密码和关联的UserFlags来创建模拟所需的用户帐户。然后,它只需使用此帐户使用LogonUser()功能执行一些任务(使用模拟) - 完美工作。如何防止用户登录用于模拟的帐户?

但是,该帐户只能用于我的服务模仿,用户应永远不能在本地或通过网络登录(即使他拥有凭据)。

为了达到这个目的,我尝试设置“本地拒绝登录”和“拒绝从网络访问此计算机”的本地策略,并添加了我的服务创建的用户。但现在,模拟失败,出现以下情况: 登录失败:用户未被授予请求的登录类型在这台计算机(1385)

所以,我猜这不是正确的方法来做到这一点......但我需要安全地锁定帐户,以便其仅供我的服务用于冒充目的,并确保没有其他人可以永久登录帐户(即使他们拥有所有凭据)。

我可以使用LSA吗?或者使用类似于帐户创建时的DirectoryEntry代码?有没有办法允许帐户存在但不允许用户交互式登录?

任何帮助将不胜感激。 谢谢,

+2

你可能会尝试在serverfault.com上挂着很多系统管理员。 – NotMe 2011-03-29 14:24:57

+0

虽然您的服务最初是用c#编写的,但您目前的问题不是编程问题。推荐这个移动到serverfault.com – 2011-03-29 14:36:47

+0

欢迎来到堆栈溢出!请不要在标题中放置任何标签。 – Will 2011-03-29 16:54:55

回答

0

您可以在“网络服务”帐户下运行该服务,并授予服务器对适用的域资源的访问权限。除此之外,我不确定是否有办法解决用户帐户的问题。

+0

可悲的是,这不会工作 - 我需要模仿一个真正的用户...我只需要确保唯一的方式来使用用户是通过模拟,并拒绝它从一个物理用户登录 – Shaitan00 2011-03-29 21:13:43

相关问题