2

是否有机会使用 AspNet Core Identity 用户 IdentityManager?

我没有为 AspNetCoreidentity 找到任何 IIdentityManagerService 实现。

或者,在使用 AspnetCore 身份时是否可以替代 IdentityManager?

谢谢你。

4

1 回答 1

2

是的,您可以使用 IdentityManager 来管理您的 AspNetIdentity 用户。

IdentityManager 本身有一个实现,称为 IdentityManager.AspNetIdentity。您可能想通读Scott Hanselman 的一篇描述您的场景的文章

您本质上想要做的是在加载继承自AspNetIdentityManagerService

public class ApplicationIdentityManagerService : AspNetIdentityManagerService<ApplicationUser, string, IdentityRole, string>
{
    public ApplicationIdentityManagerService(ApplicationUserManager userMgr, ApplicationRoleManager roleMgr) : base(userMgr, roleMgr)
    {
        // Nothing
    }
}

然后,您可以将其插入您的工厂,如下所示:

app.Map("/users", idm =>
{
    var factory = new IdentityManagerServiceFactory();
    factory.IdentityManagerService = new Registration<IIdentityManagerService, ApplicationIdentityManagerService>();
    factory.Register(new Registration<ApplicationUserManager>());
    factory.Register(new Registration<ApplicationUserStore>());
    factory.Register(new Registration<ApplicationRoleManager>());
    factory.Register(new Registration<ApplicationRoleStore>());
    factory.Register(new Registration<ApplicationDbContext>(resolver => new ApplicationDbContext("dbase")));
    factory.Register(new Registration<ApplicationDbContext>());

    idm.UseIdentityManager(new IdentityManagerOptions { 
        Factory = factory
    });
});

IdentityManager AspNetIdentity GitHub 存储库中查找更完整的示例

于 2016-09-21T09:44:14.363 回答