ASP.Net WebAPI OWIN:为什么 Request.GetOwinContext() 返回 null?

2023-11-26

在我的生产代码中,我们遇到了 Request.GetOwinContext() 始终返回 null 的问题。

我设置了一个小型测试 WebAPI 控制器来尝试隔离问题:

    public class TestController : ApiController
{
    [HttpGet]
    public async Task<IHttpActionResult> GetAsyncContext(string provider)
    {
        if (HttpContext.Current.GetOwinContext() == null)
            return this.BadRequest("No HttpContext.Current Owin Context");

        if (Request.GetOwinContext() == null)
            return this.BadRequest("No Owin Context");

        return this.Ok();
    }

    [HttpGet]
    public IHttpActionResult GetContext(string provider)
    {
        if (HttpContext.Current.GetOwinContext() == null)
            return this.BadRequest("No HttpContext.Current Owin Context");

        if (Request.GetOwinContext() == null)
            return this.BadRequest("No Owin Context");

        return this.Ok();
    }
}

起初我以为这可能与异步运行的action方法有关,但运行上面之后发现,在两个版本中,Request.GetOwinContext()都返回null。

我正在使用 Microsoft.AspNet.WebApi.Owin.5.1.1 (这似乎是定义 GetOwinContext() 扩展方法的地方)。

对这里发生的事情有什么想法吗???


另一个原因(尤其是从 ASP.NET MVC 4 和/或空 Web Api 模板升级后)是 WebAPI 项目根目录中缺少 Startup.cs 文件。

另外,请确保您已安装 Microsoft.Owin.Host.SystemWeb 包。

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(TestMVC5.Startup))]

namespace TestMVC5
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net WebAPI OWIN:为什么 Request.GetOwinContext() 返回 null? 的相关文章

随机推荐

  • 是否可以在现有类型的子集上定义函数?

    我是 Haskell 的新手 想知道是否可以定义一个仅在现有类型的子集上定义的函数 而实际上不必定义新类型 示例 我想创建一个仅接受偶数整数 甚至自然数等 并返回的函数 例如该数字的平方 例如 squared 2 Integer gt In
  • Outlook 中“已发送邮件”的事件

    我在用着ApplicationEvents 11 ItemSendEventHandler see http msdn microsoft com en us library microsoft office interop outlook
  • Qt/win:showMaximized() 在无框窗口上重叠任务栏

    我正在构建一个具有自己的自定义镶边的应用程序 我通过设置标志关闭了默认窗口边框 this gt setWindowFlags Qt FramelessWindowHint 设置此标志并关闭默认窗口边框后 任何对以下内容的调用 this gt
  • 当我传递带有前导零的字符串时,为什么 parseInt() 返回意外结果?

    parseInt 1 1 parseInt 01 1 parseInt 5 5 parseInt 05 5 parseInt 8 8 But why parseInt 08 0 parseInt 09 0 始终使用以基数作为第二个参数的重载
  • 如何设置x&y轴的对数刻度刻度?

    我想绘制一个没有科学记数法的对数刻度图 import matplotlib as mpl import matplotlib pyplot as plt plt plot np arange 0 10 0 1 plt xscale log
  • PDO fetchAll 将键值对分组到 assoc 数组中

    时不时地 当我遇到类似以下的查询时 我会遇到这样的情况 SELECT key value FROM settings 在这种情况下 我想获得一个关联数组 使用的值key value作为该数组的相应条目 例如如果数据库包含 first nam
  • 如何在renderscript和android框架之间交换数据?

    我是渲染脚本的新手 我正在尝试使用 renderscript 添加两个数组元素 我可以通过以下方式将值从 Android 传递给 renderscriptinvoke add方法 为了从 renderscript 返回 Android 框架
  • 如何在隐藏和查看密码之间切换

    有没有一种聪明的方法让用户在 android EditText 中在隐藏和查看密码之间切换 许多基于 PC 的应用程序允许用户执行此操作 自支持库 v24 2 0 以来 这确实很容易实现 你需要做的只是 将设计库添加到您的依赖项中 depe
  • IB Designables:无法渲染和更新 Google 地图的自动布局状态

    我在我的项目中使用 GoogleMaps Pod 我的故事板之一有错误 错误 IB Designables 无法渲染和更新 MapViewController 的自动布局状态 dlopen GoogleMaps framework 1 找不
  • SQL Server 查询 LEFT JOIN、SUM 和 GROUP BY,我被难住了!

    我正在绞尽脑汁地对付这个 我有 3 个 SQL Server 2005 表 用户奖 id awardamount userid dateawarded awardtypeid user id firstname lastname 奖项类型
  • 如何使用 Boost 创建关键部分?

    对于我的跨平台应用程序 我已经开始使用 Boost 但我无法理解如何实现代码来重现 Win32 临界区或 Net 的行为lock 我想写一个方法Foo可以从不同的线程调用来控制对共享字段的写入操作 应允许同一线程内的递归调用 Foo gt
  • C++:偏移到 std::vector 迭代器的正确转换是什么?

    我有一个函数需要std vector双精度数 并将它们复制到另一个向量 但以特定的偏移量 假设有足够的空间 void copy stuff const std vector
  • MarkerWithLabel 停止正常工作

    昨天 2014 年 3 月 4 日 我的 MarkerWithLabel Google 地图 API 应用程序 突然只显示最后一个标记 但标签全部显示 它一直工作得很好 谷歌示例位于 https google maps utility li
  • 通过 PublicKeyToken 防止外部程序集注入

    我正在使用以下代码 AppDomain CurrentDomain AssemblyLoad sender args gt var token args LoadedAssembly GetName GetPublicKeyToken if
  • 如何禁用一个类或整个包的记录器?

    我在用Apache Commons 日志记录 现在我想用SimpleLog实现 但是当我更改级别时 库中的记录器出现了 我希望它能把它们关掉 有没有一种简单的方法来更改整个包的日志级别 Log4j 可以做到这一点 我尝试过设置 org ap
  • Swift 运算符的优先级是什么?

    我想查找一些运算符的优先级 某处有所有这些的列表吗 我还没找到 更新为 Swift 3 0 斯威夫特3 0 现在有一个page在 Swift 文档中 下面列出了所有优先级组 也可以通过命令单击import Swift precedenceg
  • 本地通知的通知服务扩展

    系统将加载通知服务扩展并调用其didReceive withContentHandler iOS 10 中的本地通知 如果是的话我们该怎么做 否 接受的答案描述了通知Content扩展 允许您在展开的通知视图中呈现 ViewControll
  • 如何获取Android中支持的摄像机分辨率?

    我正在编写一个应用程序 允许用户使用手机摄像头捕捉视频 我使用自己的代码来录制视频 而不是 Android 内置的相机应用程序 一切工作正常 除了我需要能够访问支持的相机分辨率列表 以便我可以在运行时选择使用哪一个 我正在寻找类似的东西ge
  • 如何使用 ssh 使用 Nodegit 克隆 git 存储库

    我正在尝试使用库nodegit 版本0 2 4 和ssh从我们的teamforge服务器在node js中克隆git存储库 我们的服务器请求用户进行身份验证 当我尝试仅使用克隆方法而不传递选项时 我收到错误 回调无法初始化 SSH 凭据 我
  • ASP.Net WebAPI OWIN:为什么 Request.GetOwinContext() 返回 null?

    在我的生产代码中 我们遇到了 Request GetOwinContext 始终返回 null 的问题 我设置了一个小型测试 WebAPI 控制器来尝试隔离问题 public class TestController ApiControll