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

ASP.NET项目升级至4.8后NTLM认证通过却跳转至~/Account/Login问题求助

排查方向

  • 检查Owin中间件配置
    若项目引用了Microsoft.Owin.Security.Cookies包,默认注册的Cookie认证中间件会将未通过Cookie认证的请求重定向到~/Account/Login。NTLM为多轮握手认证,首轮请求未携带身份信息时就会触发Owin的重定向逻辑,而Basic认证为单次握手不会触发该问题。
    可直接删除Startup.cs中UseCookieAuthentication相关的注册代码,若需保留可修改重定向逻辑:Windows认证场景下401响应不触发登录跳转,直接返回状态码即可。
  • 检查全局HTTP模块配置
    查看Web.config中system.web/httpModules和system.webServer/modules节点,是否存在FormsAuthenticationModule、IdentityModule等身份认证相关模块,即使IIS关闭了表单认证,这些模块仍会自动拦截请求触发重定向,确认无用后可删除对应注册项。
  • 定位重定向触发来源
    在Global.asax的Application_EndRequest事件中加入堆栈日志逻辑,直接定位触发重定向的组件:
    protected void Application_EndRequest(object sender, EventArgs e)
    {
        if (Response.StatusCode == 302 && Response.RedirectLocation?.Contains("Account/Login") == true)
        {
            // 将堆栈信息写入日志文件即可查看重定向调用来源
            var stackTrace = Environment.StackTrace;
            File.WriteAllText(@"C:\temp\redirect_stack.log", stackTrace);
        }
    }
    
  • 检查IIS站点级配置
    1. 进入IIS站点→认证→Windows认证→右键「提供程序」,调整顺序将NTLM放到Negotiate上方,避免Kerberos认证失败降级过程触发异常重定向
    2. 检查IIS站点是否启用了官方WebDAV发布功能,该功能会和自定义WebDAV Handler冲突,如有启用请关闭
  • 检查Handler执行顺序
    确认system.webServer/handlers节点中,自定义WebDavHandler的注册顺序在所有系统默认Handler之前,避免默认Handler先处理请求篡改路径后再转发到自定义Handler
  • 检查授权配置
    确认system.web下没有继承父级配置的异常授权规则,可显式添加配置允许所有已认证用户访问:
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    
  • 核对Nuget包变更
    对比升级前后的packages.config文件,排查Microsoft.AspNet.*、System.Web.*系列包的版本变化,确认是否因包版本升级引入了默认的身份拦截逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:00