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

升级Win10后Site.master出现未处理的NullReferenceException求助

解决ASP.NET Site.master中的NullReferenceException问题

你遇到的这个空引用异常,大概率是因为Context.User或者Context.User.Identity对象为null导致的——毕竟在用户未完成身份验证的阶段,这两个对象可能还没被初始化。下面是几个针对性的解决方法:

  • 先做Null判断再安全赋值
    直接访问null对象的属性会触发异常,所以可以先对Context.User和Identity进行null检查,再完成赋值:

    string userName = string.Empty;
    if (Context.User != null && Context.User.Identity != null)
    {
        userName = Context.User.Identity.Name ?? string.Empty;
    }
    ViewState[AntiXsrfUserNameKey] = userName;
    
  • 确认AntiXsrfUserNameKey常量已正确定义
    检查Site.master的代码中,是否已经正确声明了AntiXsrfUserNameKey这个常量,比如:

    private const string AntiXsrfUserNameKey = "AntiXsrfUserName";
    

    如果这个常量未定义或者为null,也会间接导致赋值时出现问题。

  • 调整代码执行的事件时机
    Page_PreLoad事件触发时,用户身份验证流程可能还没完成,你可以尝试把这段代码移到Page_Load事件中执行;另外也要确认web.config中的身份验证配置是否正确:
    比如Forms认证的配置:

    <authentication mode="Forms">
        <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
    

    如果用的是Windows认证,要确保IIS站点的Windows身份验证功能已经启用。

  • 清理并重新生成项目
    升级系统和开发环境后,项目的临时编译文件可能出现异常,右键解决方案选择「清理」,然后重新生成整个解决方案,再运行项目试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:23:24