0

我必须使用连接到不同数据库/服务器上的第三方工具来收集一些数据并执行一些工作。这个应用程序只注意到它连接到Server1\DB1Server2\DB2Domain1并不重要。两台服务器仅使用Windows身份验证(即客户端必须连接IntegratedSecurity=true)。这种方法在Domain1中工作得很好。但有一天,我们决定将这个应用程序移动到另一个域上(商业原因)。我们在另一个域上创建了Server1\DB1的镜像(我们称之为Server1IOtherDomain\DB1)。目前这个应用程序可以与S erver1OtherDomain\DB1一起使用,因为我将它作为新域的用户运行,看起来一切正常。我们只需要在我们的环境中支持新版本的DB。然而前几天我们已经认识到连接字符串Server2\DB2是硬编码的,我们不能这样做Server2\DB2(在我们的OtherDomain上创建镜像)。很明显,部分功能不能正常工作,因为它不能在Domain1中达到Server2\DB2。 总结我的图片:使用Windows身份验证连接到不同域上的不同数据库

enter image description here


我的2个问题:

  1. 是否有可能运行OtherDomain莫名其妙应用有它连接到不同域中的两个数据块?
  2. 是否有可能使C#程序可以连接到不同域中的各种服务器?例如对不同的主机使用不同的Windows身份验证,如何管理这些情况?
+0

请注意,这个应用程序是第三方,我不能重建它。我试图以不同的用户runas/netonly/user:DOMAIN1 \ USER_NAME“App.exe”运行它,但是连接到“Server1OtherDomain \ DB1”。因为在OtherDomain中运行,我不能使用旧的'Server1 \ DB1'。 – Alezis 2014-09-29 09:41:21

+0

都是域信任关系? – Fabio 2014-09-29 09:59:04

+0

是的,他们是。 – Alezis 2014-09-29 10:01:30

回答

1

要回答你的第二个问题:
它可以有一个可以在不同的领域中使用的C#程序,看看this answer一个简单的C#实现,this Q/A约跨域认证更多的细节和this question有关SQL Server和跨域身份验证的更具体的问题。
您需要采取措施使两个域互相信任以允许从一个到另一个的连接,但是这也会打开这两个域以应对更多安全问题,并且需要评估和制定这些决策由网络管理员完成。

我也建议你看看WindowsIdentity.ImpersonateWindowsImpersonationContext的例子和关于如何具体实现模拟的附加信息。

相关问题