与服务器成功建立连接,但在ASP.NET MVC项目中登录过程中出现错误

问题描述 投票:0回答:1

我有一个 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=&quot;data source=.;initial catalog=***;user id=***;password=&quot;&quot;***&quot;&quot;;multipleactiveresultsets=True;application name=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" /> 
</connectionStrings>     

编辑器:Visual Studio 2022 v17.11.3。

Microsoft SQL Server Management Studio v18

有什么问题吗?

sql-server asp.net-mvc connection-string ef-database-first
1个回答
0
投票

首先,一些背景知识:

默认情况下,SQL Server 不需要加密,并且仅在客户端请求时才会寻求加密连接(通常作为连接字符串的一部分)。但改变这种默认设置是可能的,而且随着组织寻求保护其环境,这种情况越来越多地发生。

如果连接上确实发生加密,则会涉及一个证书,并且客户端将尝试验证此证书,即使它没有请求加密。

这就是你的错误的来源。

SQL Server 允许连接,但想要对其进行加密,并提供了一个证书用作加密密钥,而您的客户端系统拒绝该证书,因为该证书无效。

但是您可以通过将

TrustServerCertificate=Yes;
添加到连接字符串来跳过此检查。

© www.soinside.com 2019 - 2024. All rights reserved.