ADO.NET-使用应用程序提供的登录和密码连接到SQL Server,并使用Windows登录



这是SQL Server 2008 R2,.NET 4.0。

在我的SQL Server中,有一个用" Windows身份验证"创建的用户。用户存在于Active Directory域中。

我想将.NET应用程序连接到SQL Server作为此用户。在应用程序中,我知道用户的域,登录和密码,并且应用程序具有网络访问广告服务器。

我该如何完成?

我知道ASP.NET具有广告提供商和模仿。但是我正在寻找的是一个真正的通用解决方案,该解决方案应该在普通控制台应用程序上使用。我可以在控制台应用程序,Windows表单,ASP.NET或普通商务类库中使用的东西。

谢谢您的帮助!

我已经使用此类完成了:

https://platinumdogs.me/2008/10/30/net-c-mimpersonation-with-network-credentials/

如果计算机不属于域,则必须使用logon32_logon_new_credentials = 9模仿。

一旦模仿,然后使用"集成安全性= true"连接到SQL在SQL连接字符串上。

SqlConnection conn;
using (new Impersonator("myUserName", "myDomain", "myPassword", LogonType.LOGON32_LOGON_NEW_CREDENTIALS, LogonProvider.LOGON32_PROVIDER_DEFAULT))
{
    conn = new SqlConnection("Data Source=databaseIp;Initial Catalog=databaseName;Integrated Security=true;");
    conn.Open();
}
//(...) use the connection at your will.
//Even after the impersonation context ended, the connection remains usable.

最新更新