从 SPN 中删除了用于 Kerberos 和协商的端口
将 HttpClient 用于 Kerberos 或协商身份验证时,非默认端口将不再包含在服务主体名称 (SPN) 中用于查找服务。 这一新的 .NET 6 行为与 .NET Core 3.1 和更早的版本一致。
旧行为
如果在非默认端口上连接到服务,则在构造用于查找服务的 SPN 时,.NET 5 包含了一个 port
组件。
新行为
从 .NET 6 开始,默认情况下,SPN 不是使用 port
组件构造的,即使对于非默认端口也是如此。
引入的版本
6.0 RC 1
中断性变更的类型
此项更改可能会影响二进制兼容性。
更改原因
我们需要从 .NET Core 1.0 - 3.1 恢复客户已开始依赖的行为。
建议操作
如果需要保留 .NET 5 的行为,可以将应用上下文开关 System.Net.Http.UsePortInSpn
或环境变量 DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN
设置为 true
。
受影响的 API
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈