asp.net-mvc-5 – 在MVC 5的IPasswordStore中,SetPasswordHashAs
发布时间:2020-12-16 04:27:38 所属栏目:asp.Net 来源:网络整理
导读:尝试在新的asp.net mvc 5中实现IPasswordStore,我有点不知所措.我想使用自己的ORM. 从示例项目中使用’register’屏幕时运行的脚手架’AccountController’中获取这个熟悉的代码片段. public async TaskActionResult Register(RegisterViewModel model) { if
尝试在新的asp.net mvc 5中实现IPasswordStore,我有点不知所措.我想使用自己的ORM.
从示例项目中使用’register’屏幕时运行的脚手架’AccountController’中获取这个熟悉的代码片段. public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser() { UserName = model.UserName }; var result = await UserManager.CreateAsync(user,model.Password); if (result.Succeeded) { await SignInAsync(user,isPersistent: false); return RedirectToAction("Index","Home"); } else { AddErrors(result); } } // If we got this far,something failed,redisplay form return View(model); } 该 var result = await UserManager.CreateAysnc(user,model.Password) line首先调用IPasswordStore函数 public Task SetPasswordHashAsync(TUser user,string passwordHash) 没有先从IUserStore调用 public Task CreateAsync(TUser user) 如果尚未在db中创建用户,如何设置密码哈希?此外,我们实际上甚至不知道我们是否可以创建提议的“用户”,因为我们还没有检查是否已使用用户名 public Task<TUser> FindByNameAsync(string userNameIn) 这被称为之后. 有任何想法吗? 解决方法
您是正确的注意到在创建用户之前您可能不应该为用户保留密码哈希值.
您可以将密码哈希保存到一个位置,如果实际上没有实际创建用户,该位置将被还原.密码不应存储,直到创建和存储用户,即在CreateAsync(TUser用户)中. EntityFramework实现中的IdentityUser就是这样一个位置,它使您能够在CreateAsync方法中存储用户和密码信息.我并不是说你应该引用Identity.EntityFramework程序集,只是说同时具有类似于IdentityUser的User和PasswordHash信息的User对象是一种可能的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- ASP.NET MVC中的jQuery AJAX响应
- asp.net-mvc – SignalR持久连接的超时是多少?
- 如何把asp COM组件移植到aspx
- 如何调查ASP.net应用程序上的SQL Server超时错误
- asp.net-mvc – MVC 4是否有内置的站点地图解决方
- asp.net-identity – UserManager RemoveFromRol
- ILifetimeScope的autofac DependencyResolutionE
- asp.net-mvc – “信号量超时期限已过期”SQL Az
- asp.net-mvc-3 – 依赖注入与多个类实现的接口
- asp.net – 检查是否存在Web服务
热点阅读