如何在许多模拟单个 AD 用户帐户的网络 PC 上创建 C# 服务

How to create a C# service on many network PC's that all impersonate a single AD user account

我不太确定如何解决这个问题,如果有任何想法,我将不胜感激。 我有大约 20 个自定义 c# 应用程序分布在我们的 Windows 网络中,该网络包含大约 100 台加入域的 PC。其中一个应用程序是为所有其他应用程序的所有单独功能设置和获取权限的应用程序,权限数据存储在 MSSQL 数据库中。

一旦 c# 应用程序通过了我们的许可应用程序,我希望 c# 应用程序能够访问网络资源,例如目录和 SQL 函数,所有这些都作为同一用户使用,这样我就不必为来来去去的多个用户管理目录或表和存储过程的权限。该部分已在许可应用程序中完成,将是多余的。

我在想,我会查看在服务器上运行的服务,该服务将模拟用户,而 c# 客户端服务将向服务器服务发出请求。如果没有服务器服务,我会考虑将所有客户端服务设置为模拟同一用户。

我还在球场上吗?

要解决这个问题,您需要做两件事:

  1. 设置具有正确权限的 Service Account(Active Directory 中一种特殊类型的无人值守帐户)。
  2. 确保您的 C# 服务 are set up to run as this service account user

请记住,这纯粹是为了无人值守的服务。如果您希望 Windows Forms 应用程序模拟服务帐户,则必须在应用程序本身(例如,连接字符串)中包含 username/password,或者您必须将其包含在可执行快捷方式 link.

在任何一种情况下,它对最终用户都是可见的(当然除非您在连接字符串的情况下对其进行加密)。但是坚定的最终用户将能够解密它。