C# Identity框架中两个FindByIdAsync之间的差异
在C# Identity框架中两个FindByIdAsync之间的差异,c#,.net,asp.net-mvc,asp.net-mvc-5,asp.net-identity,C#,.net,Asp.net Mvc,Asp.net Mvc 5,Asp.net Identity,在UserManager和UserStore类中都有两个版本的各种方法。所以我的问题是: 为什么会这样 什么时候用哪一个,用什么 所以我的想法是,UserStore用于查找用户和创建用户,它用于与用户相关的操作。但是为什么在UserManager中也有相同的方法呢 附加问题:我是否需要使用在UserManager方法(如FindByIdAsync)中创建和使用的UserStore对象来调用UserStore方法(如FindByIdAsync)。但这没有任何意义 微软在MSDN上并没有很好的帮助开
UserManager
和UserStore
类中都有两个版本的各种方法。所以我的问题是:
UserStore
用于查找用户和创建用户,它用于与用户相关的操作。但是为什么在UserManager
中也有相同的方法呢
附加问题:我是否需要使用在UserManager
方法(如FindByIdAsync
)中创建和使用的UserStore
对象来调用UserStore
方法(如FindByIdAsync
)。但这没有任何意义
微软在MSDN上并没有很好的帮助开发者,所以需要从这里了解
感谢
UserStore
是在UserManager
中使用的帮助器类。
实际上,UserManager.FindByIdAsync
所做的就是调用UserStore.FindByIdAsync
——您可以在中看到它
这是一个非常罕见的情况,你需要直接使用
UserStore
——我从来没有使用过它,我所有的身份处理都是通过UserManager
或rolemager
。而且,IUserStore
存在,因此框架可以为存储放置一个隔离层-如果您想实现自己的存储,可以实现IUserStore
并将其提供给UserManager
我已经实现了我自己的存储
,所以我已经实现了IUserStore
,我觉得没有必要在UserManager
中使用FindByIdAsync
执行任何操作。但你说的正好相反。我仍然有点困惑,我在UserManager
中可以使用这个方法做什么?@Alex好吧,它按照tin上的说明做——如果你提供ID,它会为你找到一个用户对象。通常在使用标识时,你需要的不仅仅是存储——比如为密码重置或更改密码生成用户令牌。使用IUserStore
无法完成此操作。如果您在依赖项(控制器)中插入UserManager
,将为您提供所需的所有内容,而不必对UserManager和UserStorage有两个依赖项。您发布的链接也是Identity Framework代码?