ASP.NET MVC5 应用程序在授权时抛出 NullReferenceException

2024-02-15

我有一个 MVC5 应用程序,它在生产服务器使用时[Authorize]控制器上的属性。该应用程序正在使用表单身份验证。

生产服务器是 Server 2008 SP 2(.NET 4.5.1 和 IIS 7)。

堆栈跟踪的开头是:

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.Mvc.AuthorizeAttribute.AuthorizeCore(HttpContextBase httpContext) +38
   System.Web.Mvc.AuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext) +293
   System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) +155

我可以通过设置来修复它

<modules runAllManagedModulesForAllRequests="true">

但是,我不喜欢使用这样的大锤法 http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html.

有没有更干净的方法来解决这个问题?


IIS 和 IIS Express 对于请求身份验证有一些不同的行为。这HttpContext.User.Identity属性可能无法设置时AuthorizeAttribute.AuthorizeCore()方法执行(因此NullReferenceException),因为身份验证模块并不总是运行。

您可以仅更改所需的身份验证模块的前提条件,而不是为所有请求加载所有模块。例如,FormsAuthenticationModule 具有:preCondition="managedHandler"默认情况下。

<system.webServer>
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="FormsAuthentication" />
    <remove name="DefaultAuthentication" />
    <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="" />
    <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="" />
  </modules>
</system.webServer>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC5 应用程序在授权时抛出 NullReferenceException 的相关文章

随机推荐

  • 为此我需要哪种音频播放技术?

    我在选择正确的音频播放技术时遇到了困难 iPhone 上使用了大量的技术 令人眼花缭乱 我需要做的是这样的 开始播放 0 1 到 2 秒之间的短声音 高品质播放 无爆裂声 我听说一些 iPhone 音频播放技术在开始或结束时会发出爆裂声 这
  • 替换标准 Android JSON 解析器以获得更好的性能?

    我知道 Android 有一个内置的 JSON 解析器 但我想知道是否值得使用提供更好性能的东西 比如 Jackson 请参阅http jackson codehaus org http jackson codehaus org 有人试过吗
  • 会议结束后如何获取 Twilio 会议参与者?

    根据 Twiliodocs https www twilio com docs api rest participant list get filters curl G https api twilio com 2010 04 01 Acc
  • Android 6.0.1 - 权限问题 = wifiManager.getScanResults() 返回 0

    PermissionsList add 不起作用 但 MainActivity this requestPermissions 工作正常 问题是它会带来一个对话框 询问用户是否允许位置权限 为什么添加权限不起作用 有没有办法避免对话框 请参
  • Jenkins - 将数组/列表传递给参数化远程构建

    我正在使用 Jenkins 通过以下方式远程运行 Ansible playbookPublish Over SSH命令 这个命令 curl k v X POST https jenkins myhost com job Ansible De
  • 将数据框的列名称作为每列图的标题

    我有一个包含 36 列和 3000 多行的数据框 我正在使用绘图函数for loop绘制每列的图表 我希望图表的标题显示为列名称 我怎样才能做到这一点 for i in c 1 36 plot DowData i type l main c
  • CSS 背景图像未显示高度自动

    我有一个带有背景图像的 div 我必须指定一个以 px 为单位的高度才能显示 但我希望它在宽度调整时以自动高度显示 我被困住了 当我有高度自动时 它根本不显示图像 slider shadow1 z index 9999 margin 0 a
  • Git 挑选那些包含关键字(跟踪 ID)的提交

    出于代码审查的目的 我想 樱桃选择特定提交 与他们一起创建一个新分支并 将该分支推送到远程 这样我就可以将分支 url 提供给同行进行审核 我想创建一个 shell 脚本并发出简单的命令 例如 git review
  • 无法在 sqlfiddle (oracle) 上的选择查询中使用列名

    如果我错误地使用 sqlfidle 或者缺少功能 我不会 重现步骤 选择oracle选项 左上角 创建表并插入数据 CREATE TABLE products P Id int ProductName varchar2 10 UnitPri
  • 如何测试 img 标签是否存在?

    if I do expect img not toBe null 然后我得到一个错误 Error expect called with WebElement argment expected a Promise Did you mean t
  • 从 Azure 中的图像调整器请求接收到 400 错误请求

    ImageResizer 作为 Azure 虚拟应用程序运行 在 ImageResizer 修补程序之后 这在 Azure 模拟中运行良好 但在 Azure 云中遇到问题 如果未指定查询字符串参数并且 URL 重定向到 Blob 存储 则图
  • 解释一下这个 Kotlin 函数结构

    我正在使用这个 Kotlin 函数 我知道我们有一个函数叫做mPasswordView setOnEditorActionListener 采用参数TextView OnEditorActionListener 但是后面是什么 我们的参数里
  • 来自 cURL 请求的 RestSharp POST 请求翻译

    我正在尝试使用 RestSharp 发出 POST 请求以在 JIRA 中创建问题 而我必须使用的是一个使用 cURL 的示例 我对这两者都不够熟悉 不知道我做错了什么 这是example https developer atlassian
  • 使用 mongod 以 utc 存储日期时如何处理时区问题?

    我有一个 mongodb 集合 其中每个文档都有一些属性和 utc 时间戳 我需要从集合中提取数据并使用聚合框架 因为我使用集合中的数据在用户界面上显示一些图表 但是 我需要根据用户的时区进行聚合 假设我知道用户的时区 从浏览器的请求或以其
  • 使用 Python 解析文件 (ics/icalendar)

    我有一个以下格式的 ics 文件 解析它的最佳方法是什么 我需要检索每个条目的摘要 描述和时间 BEGIN VCALENDAR X LOTUS CHARSET UTF 8 VERSION 2 0 PRODID Lotus Developme
  • XSD 中复杂类型的选择

    在 XML 模式中 复杂类型可以包含其他复杂类型的选择吗 我找不到任何相关信息 是的 请参阅第3 4 2节 http www w3 org TR xmlschema 1 declare typeXML 模式参考 AcomplexType确实
  • Chrome Mobile 108:touchcancel 未触发

    当触摸被取消时 如何让处理程序运行 例如 我可以取消突出显示按钮当 CSS 不能帮我做这件事时 https stackoverflow com questions 74843213 chrome mobile javascript even
  • 将元素附加到matlab中的单元格

    为了将 类似 python 的追加 元素添加到 Matlab 列表中 我使用以下迭代 list element1 element2 list 如果列表元素是数字或字符 它就可以正常工作 但如果我尝试将它们结合起来 它就不起作用 我希望将 2
  • 使用OpenID登录多个域:这个方案可行吗?

    例如 我们正在两个域上运行两个社区站点 称它们为example com and example net 我们希望以后能够将其扩展到更多领域 我们希望允许多种类型的登录 OpenID Facebook Twitter 标准用户名 密码 我们希
  • ASP.NET MVC5 应用程序在授权时抛出 NullReferenceException

    我有一个 MVC5 应用程序 它在生产服务器使用时 Authorize 控制器上的属性 该应用程序正在使用表单身份验证 生产服务器是 Server 2008 SP 2 NET 4 5 1 和 IIS 7 堆栈跟踪的开头是 NullRefer