具有依赖注入的Asp.net身份

时间:2016-04-22 16:46:58

标签: c# dependency-injection asp.net-identity autofac

我正在使用存储库模式的asp.net身份并遇到一些麻烦。 在Unity中,我看到它注册如下(已经运行):

container.RegisterType<IUserStore<IdentityUser, Guid>, UserStore>(new TransientLifetimeManager());
container.RegisterType<RoleStore>(new TransientLifetimeManager());

现在我想使用Autofac进行注册,特别是第一个注册码但我找不到任何相关内容。 如果您有另一种解决方案,可以使用存储库模式应用asp net identity。

1 个答案:

答案 0 :(得分:2)

我在互联网上找到的一些例子。

1。注册角色,用户,关联

https://github.com/kirill-vinnichek/BerezovskyVinnichek.Wunderlist/blob/master/Wunderlist/Epam.Wunderlist.Web/App_Start/AutofacConfig.cs

public static class AutofacConfig
{
    public static void Config()
    {
        var builder = new ContainerBuilder();
        builder.RegisterControllers(Assembly.GetExecutingAssembly());
        builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
        builder.RegisterFilterProvider();
        builder.RegisterModule(new AutofacDataModule());
        builder.RegisterModule(new AutofacServiceModule());

        builder.RegisterType<WunderlistUserStore>().As<IUserStore<OwinUser,int>>().InstancePerRequest();
        builder.RegisterType<WunderlistRoleStore>().As<IRoleStore<OwinRole,int>>().InstancePerRequest();
        builder.RegisterType<WunderlistUserManager>().As<UserManager<OwinUser,int>>().InstancePerRequest();

        IContainer container = builder.Build();

        System.Web.Mvc.DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
    }
}

2。注册用户存储

https://github.com/cococrm/ZY.Web/blob/master/ZY.WebApi/Autofac/RepositoryModule.cs

    protected override void Load(ContainerBuilder builder)
    {
        builder.RegisterGeneric(typeof(Repository<,>)).As(typeof(IRepository<,>));
        builder.RegisterType<UserStore>().As<IUserStore<User,int>>();
    }