You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 9 Razor Pages Windows Auth模板与文档不符,以何为准?

关于.NET 9 Razor Pages Windows身份验证的问题解答

一、模板与官方文档的正确性判定

.NET 9的Razor Pages Windows身份验证模板是正确的,无需显式调用UseAuthentication:

  • 在.NET 8及后续版本中,当通过AddAuthentication().AddNegotiate()配置Windows身份验证时,框架会自动注册身份验证中间件,不再需要开发者手动调用UseAuthentication。
  • 官方文档可能尚未同步更新.NET 9的这一简化逻辑,导致文档内容与实际模板生成代码存在差异。

二、开发环境中间件顺序报错的原因

开发环境使用IIS Express开启Windows身份验证时,若将app.UseStatusCodePagesWithReExecute("/StatusCode/{0}")置于身份验证逻辑前会报错,原因如下:

  • 开发环境中Windows身份验证由IIS Express接管处理,UseStatusCodePagesWithReExecute提前拦截请求,导致身份验证流程未完成就触发状态页跳转,引发权限相关错误。
  • 发布至服务器后,要么是IIS完全接管身份验证流程,要么独立账户授权模式下中间件顺序的影响被抵消,因此不会出现该问题。

三、移除UseAuthentication对安全性的影响

移除UseAuthentication不会影响站点安全性:

  • .NET 9中AddNegotiate已自动完成身份验证中间件的注册工作,显式调用UseAuthentication属于冗余操作,甚至可能导致重复注册,但不会降低安全性。
  • 确保站点安全的核心是正确配置AddAuthentication和AddNegotiate,并启用UseAuthorization授权中间件,通过授权策略控制资源访问权限。

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:04:58