Unable to access CreateAsync in User Manager

2020-02-11 07:03发布

I'm trying to use the new Asp.Net Identity system. I've searched this in asp.net site and able to find a tutorial here.

I've created Register action and appropriate view for it. But Unable to code it further as I'm struck using User Manager in Identity System.

To be precise, It's here.

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

The UserManager class throws an exception

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

My question is why did the author of the tutorial did not get any sort of exceptions ? Am I missing any dependencies ?

It seems like the documentation is not so perfect in asp.net site as well.

Any help would be appreciated.

3条回答
相关推荐>>
2楼-- · 2020-02-11 07:43

So, at the beginning just declared a property as

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

And

  private AppUserManager _userManager 
{
  get { return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();}
}
查看更多
干净又极端
3楼-- · 2020-02-11 07:44
var result = await UserManager.CreateAsync(user, register.Password);

The UserManager in the above statement is not a Class as I've expected. Its a property of type UserManager<ApplicationUser>.

So, at the beginning just declared a property as

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

And now I can use the Async version for creating users. The following statement works.

var result = await UserManager.CreateAsync(user, register.Password);
查看更多
家丑人穷心不美
4楼-- · 2020-02-11 07:55

Have you referenced "Microsoft.AspNet.Identity.Core, Version=2.0.0.0"?

Microsoft ASP.NET Identity Core 2.0.0

Update 1 I've just looked back at some code where I have done this, and it looks like I ended up using the non-async version:

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

Although this doesn't answer your specific question, it may help.

Update 2 Check you have the following using statements:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
查看更多
登录 后发表回答