2016-01-23 115 views
1

只是为了一般性理解,为什么它被设置一次,以创建用户名和电子邮件,并在另一方面一个单独的UserManager,然后设置密码的ApplicationUser我不明白这一点:ASP.NET用户身份创建

var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 
var result = await UserManager.CreateAsync(user, model.Password); 

顺便说一句:我刚刚创建了一个空的.NET 4.6.1应用程序,并试图找出现在的不同部分。

回答

2

UserManager将散列密码,并将散列密码保存在数据库中。

+0

好吧,但为什么我不能只是简单地添加继承自IdentityUser的应用程序用户并将其作为setter函数?或者至少让UserManager只把它保存到数据库中,然后在IdentityUser中完成剩下的工作? –

+0

IdentityUser为您提供公共虚拟字符串PasswordHash {get;组; }。这是UserManager在对CreateAsync方法中的model.Password参数进行哈希处理后填充的内容。 UserManager也有manager.PasswordValidator(请参阅ApplicationUserManager的Create方法)。所以它在这里处理额外的功能。 – DeveloperUK

+0

好吧,现在很清楚。谢谢 –