我决定使用ASP.NET身份的帐户确认和密码恢复。我正在使用Identity 2.1.0。我将NuGet中的示例MVC应用程序安装到一个空项目中,以便我可以看看它是如何配置的。
将更改合并到我的项目后,有一个错误,我不明白如何解决:
'Microsoft.Owin.IOwinContext'不包含的定义 'GetUserManager'并且没有扩展方法'GetUserManager'接受a 可以找到类型为“Microsoft.Owin.IOwinContext”的第一个参数 (你错过了使用指令或程序集吗? 参考?)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;
}
}
在示例应用程序和我的项目中,我在“属性”下看到两个项目都安装了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的示例应用程序不同。 - 这是我能找到的唯一区别。
除了上面的粗体段落之外,我没有发现任何差异。这似乎不对,但我不确定,如果不对,我不知道如何修复它。
答案 0 :(得分:8)
右键单击GetUserManager没有显示通常的Resolve
菜单项,只显示Refactor
因此问题不明显,对我来说......我能够解决这个问题,包括一个using
声明:
使用Microsoft.AspNet.Identity.Owin;
:S
答案 1 :(得分:1)
上次启动MVC项目时,我遇到了与Authentication框架类似的问题。为我解决的是卸载Authentication framwork(通过Nuget),然后重新安装。他们最近更新了身份验证框架,但我不确定标准MVC项目是否使用了新的更新版本。如果有效,请告诉我。
答案 2 :(得分:1)
由于某种原因,在做出最多投票的问题中提到了我必须清理并再次构建项目以使其工作。