IOwinContext不包含GetUserManager()的定义

本文关键字:定义 GetUserManager 包含 IOwinContext | 更新日期: 2023-09-27 18:10:41

我决定使用ASP帐户确认和密码恢复。净的身份。我正在使用Identity 2.1.0。我将示例MVC应用程序从NuGet安装到一个空项目中,以便我可以看看它是如何配置的。

将更改合并到我的项目后,有一个错误我不知道如何解决:

Microsoft.Owin。iwincontext '不包含定义'GetUserManager'和没有扩展方法'GetUserManager'接受Microsoft.Owin类型的第一个参数。可以找到IOwinContext(您是否缺少using指令或程序集参考?)c:' users 'xxxxx' source ' repository 'xxxxxx'xxxxxx'Controllers'AccountController.cs 48 69 xxx .csxxx xxx

在我的AccountController.cs:

中抛出错误。
public ApplicationUserManager UserManager
{
    get
    {
        return _userManager ?? 
            HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
    }
    private set
    {
        _userManager = value;
    }
}

在示例应用程序和我的项目中,我在属性下看到两个项目都安装了microt.aspnet . identity . owin Version 2.0.0.0。

当我右键单击我的项目和Goto定义中的GetOwinContext()时,它显示元数据来自Assembly Microsoft.Owin.Host.SystemWeb.dll, v2.1.0.0,但是当我单击参考文献下的Microsoft.Owin.Host.SystemWeb时,我在属性中看到它只有2.0.0.0版本-这不仅看起来很奇怪,而且它也不同于显示2.1.0.0的示例应用程序。-这是我能找到的唯一不同。

除了上面的黑体段落外,我没有发现任何不同之处。这似乎是错误的,但我不确定,我不知道如何解决它,如果它是错误的。

IOwinContext不包含GetUserManager()的定义

右键单击GetUserManager没有显示通常的Resolve菜单项,只有Refactor,所以这个问题并不明显,对我来说……我能够通过包含using语句来解决这个问题:

使用Microsoft.AspNet.Identity.Owin;

: S

上次开始MVC项目时,我在身份验证框架中遇到了一些类似的问题。解决这个问题的方法是卸载身份验证框架(通过Nuget),然后重新安装。他们最近更新了身份验证框架,但我不确定标准MVC项目是否使用新更新的框架。

出于某种原因,在做了大多数投票问题中提到的事情之后,我不得不重新清理和构建项目以使其工作