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代码?