如果可能,如何使用.net应用程序中的Windows身份验证连接远程SQL服务器

时间:2013-01-03 09:51:58

标签: c# asp.net

目前我在应用程序的app.config文件中使用此连接字符串

add name="LightSailEntities" connectionString="metadata=res://*/LightSailEntities.csdl|res://*/LightSailEntities.ssdl|res://*/LightSailEntities.msl;provider=System.Data.SqlClient;provider connection string='data source=abc.xyz.com;initial catalog=LightSail;user id=LightSail; password=yourpasswordhere;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient"

.Net应用程序的域和使用.Net应用程序的客户端域不同于SQL服务器的域。我提到“使用寡妇身份验证”只是因为我可以访问安装了SQL服务器的服务器计算机(意味着我可以使用远程桌面连接)。

3 个答案:

答案 0 :(得分:2)

对于Windows Auth,您无需设置用户ID和密码,但您需要包含“Integrated Security = SSPI;”

尝试:

add name="LightSailEntities" connectionString="metadata=res://*/LightSailEntities.csdl|res://*/LightSailEntities.ssdl|res://*/LightSailEntities.msl;provider=System.Data.SqlClient;provider connection string='data source=dev.shopcube.com;initial catalog=LightSail;Integrated Security=SSPI;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient"

这里有更多信息: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(VS.71).aspx

答案 1 :(得分:1)

您必须更改ConnectionString以使用Integrated Security=SSPIuser

password插入内容
add name="LightSailEntities" 
connectionString="metadata=res://*/LightSailEntities.csdl|res://*/LightSailEntities.ssdl|res://*/LightSailEntities.msl;
provider=System.Data.SqlClient;
provider connection string='data source=dev.shopcube.com;initial catalog=LightSail;Integrated Security=SSPI;MultipleActiveResultSets=True;App=EntityFramework'" 
providerName="System.Data.EntityClient"

之后,请查看您应用的Identity的{​​{1}}集 必须使用管理工作室Application Pool内的Security\Logins授权该用户访问您的数据库

答案 2 :(得分:0)

Youo可以使用以下代码:

SqlConnection conn = new SqlConnection(Configuration.DBConn);

或者如果你使用Linq2SQL:

DBContext ctx = new DBContext(Configuration.DBConn);

在Configuration类中,DBConn字符串包含到sql的连接字符串,即:

Data Source=XYZ\\DEV;Initial Catalog=YOURDB;Integrated Security=True;Connect Timeout=600;connection lifetime=600

Integrated Security=True告诉您要使用Windows身份验证。