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 的相关文章

  • 要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet

    我在 Kendo UI 网格中绑定了批量记录 响应是从 Json 返回的 我在使用以下格式时遇到错误 问题代码 方法1 public JsonResult KendoserverSideDemo int pageSize int skip
  • MVC5 输入占位符不起作用

    我的代码是这样的 Html EditorFor model gt model CreatedUser new htmlAttributes new class form control placeholder Your Placeholde
  • 创建持久身份验证 cookie 时出现问题:ASP.NET MVC

    好的 这是我创建身份验证 cookie 的代码 get user s role List
  • ASP.NET MVC 4 会话超时

    我正在使用 VS 2012 IIS 7 5 开发一个带有 ASP NET MVC4 的互联网应用程序 我正在使用表单身份验证 我的网络配置中的设置如下
  • 验证日期格式不起作用

    我在日期验证方面遇到问题 在我的视图中 我有一个 jQuery 日期选择器 我更改了格式yy mm dd to mm dd yy现在我收到客户端验证错误 例如 The value 02 25 2014 is not valid for Da
  • .net 4.5.1 ASP.NET MVC 5 中的用户锁定

    因此 在新的 Net Framework 4 5 1 AspNetUser 表中没有用于在有限次数的不成功尝试后将用户锁定的列 是否有为此目的构建的框架或解决方案来取代以前的 net 框架中曾经存在的功能 还是我必须自己构建 在即将发布的
  • 如何为 asp.net MVC 5 配置 StructureMap

    我遇到以下错误 我的设置与 asp net mvc 4 类似 没有为此对象定义无参数构造函数 描述 安 当前网页执行期间发生未处理的异常 要求 请查看堆栈跟踪以获取有关的更多信息 错误及其在代码中的起源 异常详细信息 System Miss
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • ASP.NET MVC 站点中的覆盖视图不起作用

    我的解决方案中有一个单独的项目 其中包含一些控制器和编译的视图 我将这些控制器用作 MVC 应用程序中其他控制器的基类 并使用 RazorGenerator 编译视图 可以说B是具有非抽象操作方法的基本控制器一些动作返回视图 MyView
  • ASP.NET MVC - 用于管理的区域还是单独的 Web 应用程序?

    到目前为止我一直在使用MVC Area为了行政我的 mvc 应用程序的一部分 但最近我开始重新思考这个问题由于每个应用程序不能有多个表单身份验证配置 这已经成为一个问题 因为在最近的一个项目中 我想将身份验证 cookie 设置为不会对用户
  • 在子网站中使用邮政和 Hangfire

    我一直在尝试在我的 MVC5 站点上使用 Postal 当我将我的网页托管为子网站时 即http localhost 子站点 http localhost Subsite我收到错误 虚拟路径 映射到另一个应用程序 这是不允许的 我已经将其调
  • 当前上下文中不存在名称“DefaultAuthenticationTypes”

    我正在尝试在我的 Web 应用程序中实现基于角色的授权 如下所示 HttpPost ActionName Login public ActionResult Login LoginViewModel model if ModelState
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • 使用淘汰赛动态显示/隐藏元素

    我有一个表 有四列 即代码 名称 数量和价格 其中 我想动态更改数量列的内容 元素 通常 它应该显示其中显示数量的元素 当用户单击元素时 我想显示该元素 以便用户可以编辑数量 我正在尝试按照 示例2 来实现淘汰赛文档链接 http knoc
  • 如何将不记名令牌发送到 ASP NET MVC 5 中的视图?

    我有一个 NET MVC and WEB API项目 我想打电话给WEB API controllers来自 javascript 但我没有找到将令牌发送到我的视图的方法 我想添加bearer token in Viewbag变量 使用以下
  • 版本弃用 Facebook Graph API v2.2

    我们的 Facebook 登录现在无法使用 我们收到了来自 Facebook 开发者门户的消息 应用程序名称 当前可以访问 Graph API v2 2 该 API 将到达其末尾 截至 2017 年 3 月 27 日 有效期为 2 年 为了
  • 在 MVC3 应用程序中使用具有表单身份验证的 Oracle 数据库

    我编写了一个简单的 MVC3 应用程序 并遵循了有关如何设置经过身份验证的用户的教程 本教程使用 SQL Server Express 数据库 是否可以使用 Oracle 数据库代替 SQL Server 这只是更改 web config
  • WebApi 2 和 MVC 5 使用不同的路由属性吗?

    通读this http blogs msdn com b webdev archive 2013 10 17 attribute routing in asp net mvc 5 aspx有关 ASP NET MVC 5 中的属性路由的博客
  • Facebook MVC 5 ASP.NET 身份 - 某些用户的电子邮件为空

    这是我一个月来试图解决的问题 尝试了任何可能的文章 代码 在ExternalLoginCallback操作中 AuthenticationManager GetExternalLoginInfoAsync 返回一个有效的对象 包含所有提供者
  • 从表单身份验证中排除页面 - ASP.NET

    我知道有两种方法可以从表单验证中排除页面 通过使用包含需要排除的页面的文件夹中的另一个 web config 文件 或者使用 location 元素

随机推荐

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

    我在选择正确的音频播放技术时遇到了困难 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