如果可能的话,如何从.net应用程序使用寡妇身份验证连接远程SQLserver

本文关键字:寡妇 身份验证 连接 SQLserver 应用程序 net 如果 | 更新日期: 2023-09-27 17:50:43

目前我在应用程序的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 server的域是不同的。我提到"使用寡妇身份验证"仅仅是因为,我可以访问安装了SQL服务器的服务器机器(意味着我可以使用远程桌面连接)。

如果可能的话,如何从.net应用程序使用寡妇身份验证连接远程SQLserver

对于Windows认证,您不需要设置用户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

您必须更改ConnectionString以使用Integrated Security=SSPI而不是userpassword

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"

之后,查看应用程序的Application PoolIdentity集。
该用户必须被授权使用Management Studio的Object Explorer pan中的Security'Logins访问您的DB

您可以使用以下代码:

SqlConnection conn = new SqlConnection(Configuration.DBConn);

或者使用Linq2SQL:

DBContext ctx = new DBContext(Configuration.DBConn);

在配置类中DBConn字符串包含到sql的连接字符串

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

Integrated Security=True告诉您要使用windows授权