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

标签 c# impersonation

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

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

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

我还在球场上吗?

最佳答案

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

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

请记住,这纯粹是为了无人值守的服务。如果您希望 Windows 窗体应用程序模拟服务帐户,您将不得不在应用程序本身(例如,在连接字符串中)中包含用户名/密码,或者您将不得不包含它在可执行快捷方式链接中。

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

关于c# - 如何在许多模拟单个 AD 用户帐户的网络 PC 上创建 C# 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59197053/

相关文章:

c# - WPF 显示每个图像 x 秒如何?

c# - 在被模拟时调用异步 WCF 服务

c# - 使用 LOGON32_LOGON_NEW_CREDENTIALS 模拟 Windows 有什么魔力?

c# - 如何开始使用 Windows Phone SDK 8.1?

c# - 为什么我们不能序列化从接口(interface)派生的具体类?

c# - 类型推断不起作用

Apache Drill 模拟

c# - HtmlAgilityPack 可以处理一个 xsl 文件自带的 xml 文件来渲染 html 吗?

c# - 从域外以编程方式访问 TFS 2010

powershell - 是否可以通过 Powershell 远程处理以 "nt authority\system"启动进程?