.NET 9 Preview 2 更新总结
Microsoft 发布了 .NET 9 Preview 2,其中包含了 ASP.NET Core 的多个重要更新,主要集中在 Blazor 组件、WebSocket 压缩、身份验证集成等方面。以下是主要更新内容的总结:
Blazor 组件构造函数注入
Blazor 组件现在支持通过构造函数注入已配置的服务。这一功能补充了现有的通过 @inject 或 [Inject] 属性注入服务的方式。开发者可以通过简单的 C# 构造函数访问服务,例如 NavigationManager 服务。
WebSocket 压缩
Blazor 的交互式服务器渲染默认启用了 WebSocket 协议压缩,显著减少了消息负载的大小。为了防止压缩攻击,交互式服务器渲染默认采用了内容安全策略 (CSP) ancestor frame: 'self',限制应用只能嵌入到同源的页面中。
开发者可以通过以下方式调整 frame-ancestors 源或禁用压缩:
调整
frame-ancestors源:app.MapRazorComponents<App>() .AddInteractiveServerRenderMode(o => o.ContentSecurityFrameAncestorsPolicy="'none'");禁用压缩:
app.MapRazorComponents<App>() .AddInteractiveServerRenderMode(o => o.DisableWebSocketCompression = true);
OAuth 和 OIDC 认证参数定制
OAuth 和 OIDC 认证流程新增了 AdditionalAuthorizationParameters 选项,允许开发者自定义授权消息参数。例如:
builder.Services.AddAuthentication().AddOpenIdConnect(options =>
{
options.AdditionalAuthorizationParameters.Add("prompt", "login");
options.AdditionalAuthorizationParameters.Add("audience", "https://api.example.com");
});HTTP.sys 扩展认证标志配置
开发者可以通过新的 EnableKerberosCredentialCaching 和 CaptureCredentials 属性配置 HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING 和 HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL 标志,优化 Windows 身份验证的处理方式。
System.Text.Json 新配置
新增了 AllowOutOfOrderMetadataProperties 配置,支持在 JsonSerializer 中读取乱序的元数据,并确保在读取过程中 JSON 属性名称始终不被转义。
未来规划
ASP.NET Core 在 .NET 9 中的路线图可在 GitHub 仓库 中查看。
以上更新为开发者提供了更多灵活性和优化选项,进一步提升了 ASP.NET Core 的功能和性能。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。