当前位置: 首页 > 知识库问答 >
问题:

“System.Web.HttpContext”不包含“GetOwinContext”谜题的定义

杨无尘
2023-03-14

我意识到这个问题可能对一些人来说微不足道,但我发现自己正在与这些类型的事情做斗争,尽管在.NET中这似乎是一场失败的战斗(无论如何对我来说),但我只是想弄清楚这一切。

因此,如果我执行以下操作:

    using System.Web;
...
ApplicationUser user = System.Web.HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.User.Identity.GetUserId());

但是,如果我执行以下操作(从HttpContext前面移除System.Web

using System.Web;
    ...
    ApplicationUser user = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.User.Identity.GetUserId());

但是,如果我这样做(使用system.web处理的同一行注释掉):

    //using System.Web;
            ...
ApplicationUser user = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.User.Identity.GetUserId());

它生成相同的红色getOwinContext(),并且错误无法解析符号'getOwinContext()'

更新(以解决重复的问题答复):虽然有一个关于这个问题的答案可能会得出相同的结论,但我真的不明白这是一个重复的问题。试着从新手的角度来思考它,剖析所有的烟雾和镜子,那就是.NET。在我的生活中,我从来没有尝试学习过像.NET这样复杂的东西,有时你必须从许多不同的角度来看待事情。

我实际上看到了这个问题和另一个关于使用current,的问题,但都没有让我觉得1)是我正在寻找的答案(当时)2)更重要的是,为什么它会这样做。萨姆的答案很完美,尽管有点超出了我的理解。但是,至少现在,我可以去研究这一切意味着什么...


共有1个答案

云胤
2023-03-14

当您编写system.web.httpcontext时,实际上您指向的是一个类。但是,当您在控制器中编写HttpContext时,您使用的是名为HttpContext的属性,该属性返回HttpContext类的一个对象。您还可以通过调用system.web.httpcontext.current静态属性来访问相同的对象。因此,您可以这样写:

System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
 类似资料:
  • 我创建了一个新的Blazor应用程序,我想通过HttpClient访问一个URL。我遇到了这个错误 “HttpClient”不包含“GetFromJsonAsync”的定义,并且找不到接受“HttpClient”类型的第一个参数的可访问扩展方法“GetFromJsonAsync”(是否缺少using指令或程序集引用?)[BlazorApp]csharp(CS1061), 这是我的密码

  • ASP。NET MVC 6(DNX 4.5.1)。 用我的方法。 我得到的是: 错误CS1061“HttpRequestMessage”不包含“Form”的定义,并且找不到接受“HttpRequestMessage”类型的第一个参数的扩展方法“Form”(是否缺少using指令或程序集引用?)我的项目。DNX 4.5.1 有一个类似的问题,但我不明白帮助我。 编辑: 链接使用将数据传递给方法。他在

  • 我试图在IQueryable集合上使用Include扩展,但我有以下问题: 错误1'System.林克。IQueryable 我的代码: 方法返回-

  • 我有一个应用程序,并且我正在使用nuget包。

  • 正在寻找旧JSF页面的解决方案。我试图使用contains方法根据另一列是否包含单词red box来呈现组合框。 这一个工作和组合框被禁用。 但是,我也想在值不包含红色框时渲染它们,但随后将启用combox。 这是行不通的。 因此,我如何测试的任何想法都不包含特定的单词。我还尝试了choose test when,但由于第一个表。col4值只是一个空字符串。 有什么想法吗?谢谢。