'Microsoft.Owin.IOwinContext'没有包含名为'GetUserManager'的定义,也没有扩展方法?

24
以下代码摘自 Asp.Net Identity 2.0 示例。
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
    get
    {
        return // Error 
          _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
    }
    private set
    {
        _userManager = value;
    }
}

然而,却出现了以下错误?
错误 3:'Microsoft.Owin.IOwinContext' 不包含 'GetUserManager' 的定义;且找不到接受类型为 'Microsoft.Owin.IOwinContext' 的第一个参数的扩展方法 'GetUserManager' (是否缺少 using 指示或程序集引用?)。
更新:
Microsoft.AspNet.Identity.Owin.dll 的版本 2 已经存在于 ...\packages\Microsoft.AspNet.Identity.Owin.2.0.1\lib\net45 中。
但是,HttpContext.GetOwinContext() 的视图定义在我的项目和示例中不同。 我项目的前三行是:
#region Assembly Microsoft.Owin.Host.SystemWeb.dll, v2.0.0.0 // C:\......\packages\Microsoft.Owin.Host.SystemWeb.2.0.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll #endregion
而示例代码是:
#region Assembly Microsoft.Owin.Host.SystemWeb.dll, v2.1.0.0 // C:\....\sample\packages\Microsoft.Owin.Host.SystemWeb.2.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll #endregion
但我已经使用 Neget 更新了所有 Owin Nuget 包到最新版本。

可能是重复的问题:ASP.Net WebAPI找不到Request.GetOwinContext - Casey
1
GetOwinContext() 在我的代码中运行良好。GetUserManager() 有问题。 - ca9163d9
1
你是否按照此处“下载此版本”的步骤进行操作?http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx - Kevin Junghans
@KevinJunghans 是的,我在跟进升级我的项目。我记得一开始有一些错误,但我进行了重试。 - ca9163d9
1
你在Controller还是ApiController中? - Marc
1个回答

83

这个扩展方法已经移动到了另一个命名空间,请尝试添加:

using Microsoft.AspNet.Identity.Owin;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接