无法在用户管理器中访问CreateAsync

时间:2014-06-06 12:13:38

标签: c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity

我正在尝试使用新的Asp.Net Identity系统。我在asp.net网站上搜索了这个,并且能够找到一个教程here

我已为其创建了Register操作和相应的视图。但是,当我在身份系统中使用User Manager时,无法对其进行进一步编码。

确切地说,就在这里。

var result = await UserManager.CreateAsync(user, register.Password);

UserManager类抛出异常

Using the generic type 'Microsoft.AspNet.Identity.UserManager<TUser,TKey>' requires 2 type arguments    

我的问题是为什么教程的作者没有得到任何异常?我错过了任何依赖吗?

似乎文档在asp.net网站上也不是那么完美。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:10)

var result = await UserManager.CreateAsync(user, register.Password);

上述声明中的UserManager不是我预期的Class。它是UserManager<ApplicationUser>类型的属性。

所以,在开始时刚刚将属性声明为

public UserManager<ApplicationUser> UserManager { get; private set; }

现在我可以使用Async版本来创建用户。以下陈述有效。

var result = await UserManager.CreateAsync(user, register.Password);

答案 1 :(得分:2)

您是否引用过&#34; Microsoft.AspNet.Identity.Core,Version = 2.0.0.0&#34;?

Microsoft ASP.NET Identity Core 2.0.0

更新1 我刚刚回顾了一些我已经完成此操作的代码,看起来我最终使用的是非异步版本:

var result = userManager.Create(user, password);

虽然这并不能回答您的具体问题,但这可能有所帮助。

更新2 检查您是否使用以下语句:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;