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 程序集 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 程序集 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 包更新到了​​最新版本。

4

1 回答 1

83

扩展方法被移动到不同的命名空间,尝试添加

using Microsoft.AspNet.Identity.Owin;
于 2014-06-30T23:17:43.767 回答