IOwinContext不包含GetUserManager()的定义

rwk*_*iii 2 .net c# asp.net asp.net-mvc asp.net-identity

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

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

'Microsoft.Owin.IOwinContext'不包含'GetUserManager'的定义,并且没有扩展方法'GetUserManager'接受类型为'Microsoft.Owin.IOwinContext'的第一个参数'(您是否缺少using指令或程序集引用) ?)C:\ Users\xxxxx\Source\Repos\xxxxxx\xxxxxx\xxxxxx\Controllers\AccountController.cs 48 69 xxx xxx xxx

我的AccountController.cs中抛出了错误:

public ApplicationUserManager UserManager
{
    get
    {
        return _userManager ?? 
            HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
    }
    private set
    {
        _userManager = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在示例应用程序和我的项目中,我在属性中看到两个项目都安装了Microsoft.AspNet.Identity.Owin版本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的示例应用程序不同. - 这是我能找到的唯一区别.

除了上面的粗体段落之外,我没有发现任何差异.这似乎不对,但我不确定,如果错误,我不知道如何修复它.

rwk*_*iii 8

右键单击GetUserManager没有显示通常的Resolve菜单项,只是Refactor因此问题不明显,对我来说...我能够通过包含一个using声明来解决这个问题:

使用Microsoft.AspNet.Identity.Owin;

:S