我有来自我的asp.net mvc(Identity 2.0)的数据库,它有值:
在帐户控制器中:
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
(...)
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
(...)
}
和
public async Task<ActionResult> Register(RegisterViewModel model)
{
(...)
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await UserManager.CreateAsync(user, model.Password);
(...)
}
但是现在我已经创建了一个控制台应用程序并连接到我的数据库,但是如何读取这些值呢?
例如:对于admin我有密码:admin123,但这里有两个值:
passwordHash
和SecurityStamp
(?)
答案 0 :(得分:0)
您已使用UserManager
创建用户,对FindAsync
或FindByNameAsync
执行相同操作。
答案 1 :(得分:0)
您不应该重新实现这些功能,而是使用框架提供的类
例如,您可以使用PasswordHasher
类通过VerifyPassword
方法(http://msdn.microsoft.com/en-us/library/microsoft.aspnet.identity.passwordhasher.verifyhashedpassword(v=vs.111).aspx)验证密码。
此外,您可以查看Identity命名空间中类的源代码,例如PasswordHasher
和UserManager
。不幸的是,Identity命名空间目前不是开源的(https://aspnetidentity.codeplex.com/SourceControl/latest#Readme.markdown),但它们不应该太复杂,无法用Reflector或JustDecompile来理解。