EF Core 7.0集成身份验证失效问题咨询
问题解答
EF Core 7.0不需要强制使用SQL身份验证,Windows集成身份验证依然可用,你遇到的错误都是连接字符串配置和SSL证书信任的问题,具体解决方式如下:
针对第一个错误:用户 '.' 登录失败
当你只添加Encrypt=False;时,连接字符串未明确指定身份验证方式,驱动会默认尝试Windows集成身份验证,但可能因为当前运行环境(比如API部署在非Windows环境、或应用池身份无SQL访问权限)导致无法识别有效用户,从而抛出该错误。
- 若要使用Windows集成身份验证,必须显式添加
Integrated Security=True; - 若要使用SQL身份验证,则需要补充
User ID=xxx;Password=xxx;
针对第二个错误:SSL证书链不受信任
这个错误和身份验证方式无关,根源是.NET 7及以后版本的SQL Server驱动默认强制启用加密连接,即使你添加了Encrypt=False;,也可能因为SQL Server端的强制加密设置导致依然触发SSL验证。解决方法有两种:
- 开发环境快速解决:在连接字符串中添加
TrustServerCertificate=True;,跳过证书链验证。完整示例(Windows集成身份验证):Server=你的服务器地址;Database=目标数据库;Integrated Security=True;Encrypt=False;TrustServerCertificate=True; - 生产环境规范方案:为SQL Server部署由可信CA颁发的SSL证书,确保驱动能正常验证证书链。
另外注意:如果SQL Server端设置了强制加密,客户端的Encrypt=False配置会被覆盖,此时必须启用加密并信任对应证书。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

