- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
新的 ASP.NET MVC 5 项目模板生成一个准备好的 AccountController
,其中包括 UserManager
的基本实现和底层存储(IUserStore
>、IRoleStore
等)。
本教程展示如何实现自定义 UserStore 以将用户数据存储在自定义数据源中:http://www.asp.net/identity/overview/extensibility/implementing-a-custom-mysql-aspnet-identity-storage-provider
但是,我实现了自己的 UserStore
并认识到以下内容:
在登录过程中,会调用 AccountController
内的 UserManager.FindAsync(UserName, Password)
方法:
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
**var user = await UserManager.FindAsync(model.UserName, model.Password);**
//other code
}
return View(model);
}
FindAsync
方法按以下顺序调用底层 UserStore
方法:FindByNameAsync
-> GetPasswordHashAsync
-> FindByIdAsync
。
我的问题是:为什么同时调用 FindByNameAsync
和 FindByIdAsync
方法?这会导致对数据库进行 2 次查询,从而影响性能。
最佳答案
当您的 UserStore 使用 FindByNameAsync() 获取您的用户时,它只是查找并验证用户的存在。
当您获取用户信息时,您不会将密码返回给应用程序,因此这就是 GetPasswordHashAsync() 方法再次调用数据库以获取用户的密码哈希的原因。
关于asp.net - UserManager FindAsync 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22690052/
public class Foo { public int Id { get; set; } public int UserId { get; set; } } 这似乎是异步执行此
我通过以下代码模拟了 FindAsync: var brands = new Mock>(); ConfigureTheDbSet(brands, brandData); brands.Setup(b
UserManager.FindAsync 总能找到匹配项,即使我输入了错误的用户名和密码,它也总是会返回某种用户 ID。 [HttpPost] public ActionResult Mobilel
在我的代码中,我曾经使用 await FindAsync 加载相关实体,希望我能更好地符合 c# async 准则。 var activeTemplate = await exec.DbContext
新的 ASP.NET MVC 5 项目模板生成一个准备好的 AccountController,其中包括 UserManager 的基本实现和底层存储(IUserStore >、IRoleStore
我正在编写一个测试来检查应用程序日志,每分钟可能有数千条日志。我想使用 FindAsync 获取最新的日志。但有时服务会中断,因此使用时间值并不准确: // may return many or no
我有多对多关系,我正在使用 ASP.Net Core2.2 MVC 和 EF。 根据我的阅读,我了解到目前我必须为连接表创建一个 CLR 类。 我的代码: 模型: public class Post
还有其他类似的问题,但据我所知与实际的 FindAsync 无关。 我的 ClientsController 调用 ClientService.GetClients,它使用 mongo 驱动程序查询
我正在编写一个非常非常简单的查询,它只是根据其唯一 ID 从集合中获取文档。经过一些挫折(我是 mongo 和 async/await 编程模型的新手),我想通了: IMongoCollection
我正在编写一个非常非常简单的查询,它只是根据其唯一 ID 从集合中获取文档。经过一番挫折(我是 mongo 和 async/await 编程模型的新手),我想通了: IMongoCollection
我正在使用 FluentValidation 来验证对象。我只是检查用户是否存在于数据库中。就我而言,DbContext.Entity.Find 工作得很好,但 DbContext.Entity.Fi
我使用以下代码按字段名称过滤集合。但是 result.Current 总是 null 而数据存在于 MongoCollection 中。有什么想法吗? 代码 public async Task Fin
我是 ASP.NET Identity 的新手。为了更好地理解事情,我正在做 ASP.NET Identity 的自定义实现。我能够使用自定义代码成功创建用户。然而 FindAsync(usernam
我们有 3 种不同的方法从 EFCore 获取单个项目,它们是 FirstOrDefaultAsync()、SingleOrDefaultAsync()(包括没有返回默认值的版本,我们也有FindAs
我目前得到的代码工作正常 public async Task Details(Guid? id) { if (id == null) { return new Http
FindAsync() 是否有原因? IDbSet 中省略了方法界面? Find是界面的一部分,异步版本不可用似乎很奇怪。我需要转换到 DbSet访问它,这有点麻烦: User user = awai
我是 MVC 和 EF 的新手,我正在开发一个使用身份进行用户和角色管理的项目。在 Visual Studio 的预定义登录函数中,有一个名为 FindAsync 的函数,用于通过用户名和密码获取用户
我有一个来自 Parse.com 的在线数据库。有一个表“Vakantie”,包含 3 个对象,所以表数据不大。 我正在尝试从该表中获取所有对象,以便我可以通过 View 中的 VakantieCon
我的应用程序遇到了一个非常奇怪的问题... 我不知道为什么在我点击 FindAsync 函数时会收到此错误消息: CREATE DATABASE permission denied in databa
我已经实现了自定义 UserStore , 它实现了 IUserStore和 IUserPasswordStore . 我的登录操作方法如下: if (ModelState.IsValid) {
我是一名优秀的程序员,十分优秀!