有没有办法使用网络服务帐户将Windows C#Application连接到SQL Server

时间:2017-10-31 21:09:27

标签: c# .net sql-server active-directory

我有一个C#应用程序使用AD Groups访问SQL Server数据库进行身份验证,但我被告知他们希望将其切换为使用与Web应用程序当前通过Web服务器应用程序池使用相同的网络服务帐户。由于Windows应用程序不通过Web服务器和应用程序池,我不确定如何配置Windows应用程序以使用与Web应用程序相同的网络服务帐户。我搜索了SO,MSDN和谷歌,但一无所获。有没有办法做到这一点?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

您需要使用模拟。我们在使用自定义类的Web应用程序中使用它:

.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8

然后使用以下代码调用该类:

endpointUrl = endpointUrl + "?method=login&input_type=" + DATA_TYPE + "&rest_data=" + rest_data.toString();

答案 1 :(得分:0)

我认为连接到SQL作为网络服务的唯一方法是将您的应用程序作为网络服务运行(我不认为模拟会对此帐户起作用)。假设我们正在讨论客户端应用程序(控制台,Windows窗体或WPF),我会看到3个选项:

  1. 使用来自SysInternals的PsExec.exe按照here所述的网络服务运行您的应用。
  2. 将您的应用程序拆分为2个部分 - 实现数据访问并作为网络服务运行的Windows服务以及与该服务通信并实现UI和应用程序层的客户端应用程序
  3. 将您的数据访问实现为Web服务,以便它可以在网络服务凭据下的应用程序池中运行,并使您的应用程序使用该Web服务来访问数据。我认为这种方式在大多数情况下都是可取的,但它可能需要严格的重构。