我需要使用Windows身份验证对远程SQL Server进行身份验证 . 远程SQL Server在另一个域中运行,该域与我当前通过Windows登录的域没有信任关系 . 我无法使用SQL Server身份验证,因为SQL Server配置为仅信任域身份验证 .
Windows本身允许通过用户界面进行此类模拟:
我之前使用过 System.Security.Principal
中的 WindowsImpersonationContext
类,但这似乎依赖于属于受信任域的所需用户名 .
我正在使用Visual Studio 2012,最多可以使用Microsoft.Net 4.5,最好是VB,但如果需要,我可以轻松地从C#转换代码 .
1 回答
为了未来访问者的利益,我发布了一些VB.Net代码,允许进程使用NETONLY模拟对驻留在不受信任域中的远程服务器进行身份验证:
这可以从另一段代码中调用,如下所示:
在代码中实际不嵌入密码的标准警告当然适用于此 . 在现实世界中,我的应用程序从数据库中的加密列获取密码 .