如何防止用户仅登录用于模拟的帐户?

时间:2011-03-29 14:14:11

标签: c# impersonation

目前我有一个用C#编写的Windows服务(作为LocalSystem运行),它通过使用DirectoryEntry添加用户/密码和相关的UserFlags来创建模拟所需的用户帐户。然后它只是使用此帐户使用LogonUser()功能执行某些任务(使用模拟) - 效果很好。

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

为了实现这一点,我尝试设置“拒绝本地登录”和“拒绝从网络访问此计算机”的本地策略,并添加了我的服务创建的用户。然而现在假冒失败的情况如下:     登录失败:用户未在此计算机上被授予请求的登录类型(1385)

所以,我想这不是正确的方法...但我需要确保锁定帐户,以便它只能由我的服务用于模拟目的,并确保没有其他人可以登录该帐户(即使他们拥有所有凭证)。

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

非常感谢任何帮助。 谢谢,

1 个答案:

答案 0 :(得分:0)

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

相关问题