我有一个 ASP.NET MVC 项目,首先使用 .NET 4.6 和实体框架数据库。
当我尝试更新存储过程时出现错误:
与服务器成功建立连接,但登录过程中出现错误。 (提供商:SSL 提供商,错误:0 - 证书链由不受信任的机构颁发。)
我的连接字符串:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.;Initial Catalog=***;User ID=***;Password=***"
providerName="System.Data.SqlClient" />
<add name="SPMSEntities"
connectionString="metadata=res://*/DataBase.ModelSpms.csdl|res://*/DataBase.ModelSpms.ssdl|res://*/DataBase.ModelSpms.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=***;user id=***;password=""***"";multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
编辑器:Visual Studio 2022 v17.11.3。
Microsoft SQL Server Management Studio v18
有什么问题吗?
首先,一些背景知识:
默认情况下,SQL Server 不需要加密,并且仅在客户端请求时才会寻求加密连接(通常作为连接字符串的一部分)。但改变这种默认设置是可能的,而且随着组织寻求保护其环境,这种情况越来越多地发生。
如果连接上确实发生加密,则会涉及一个证书,并且客户端将尝试验证此证书,即使它没有请求加密。
这就是你的错误的来源。
SQL Server 允许连接,但想要对其进行加密,并提供了一个证书用作加密密钥,而您的客户端系统拒绝该证书,因为该证书无效。
但是您可以通过将
TrustServerCertificate=Yes;
添加到连接字符串来跳过此检查。