/// <summary>
        /// Configure identity User Manager for Umbraco with custom user store
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="app"></param>
        /// <param name="customUserStore"></param>
        /// <param name="appContext"></param>
        /// <param name="membershipProvider"></param>
        public static void ConfigureUserManagerForUmbracoMembers <T>(this IAppBuilder app,
                                                                     UmbracoMembersUserStore <T> customUserStore,
                                                                     ApplicationContext appContext,
                                                                     IdentityEnabledMembersMembershipProvider membershipProvider = null)
            where T : UmbracoIdentityMember, new()
        {
            if (appContext == null)
            {
                throw new ArgumentNullException("appContext");
            }

            //Don't proceed if the app is not ready
            if (!appContext.IsConfigured ||
                appContext.DatabaseContext == null ||
                !appContext.DatabaseContext.IsDatabaseConfigured)
            {
                return;
            }

            //Configure Umbraco user manager to be created per request
            app.CreatePerOwinContext <UmbracoMembersUserManager <T> >(
                (o, c) => UmbracoMembersUserManager <T> .Create(
                    o,
                    customUserStore,
                    membershipProvider));

            //Configure Umbraco member event handler to be created per request - this will ensure that the
            // external logins are kept in sync if members are deleted from Umbraco
            app.CreatePerOwinContext <MembersEventHandler <T> >((options, context) => new MembersEventHandler <T>(context));
        }
Esempio n. 2
0
        public static void ConfigureUserManagerForUmbracoMembers <T>(this IAppBuilder app,
                                                                     UmbracoMembersUserStore <T> customUserStore,
                                                                     IdentityEnabledMembersMembershipProvider membershipProvider = null)
            where T : UmbracoIdentityMember, new()
        {
            //Configure Umbraco user manager to be created per request
            app.CreatePerOwinContext <UmbracoMembersUserManager <T> >(
                (o, c) => UmbracoMembersUserManager <T> .Create(
                    o,
                    customUserStore,
                    membershipProvider));

            //Configure Umbraco member event handler to be created per request - this will ensure that the
            // external logins are kept in sync if members are deleted from Umbraco
            app.CreatePerOwinContext <MembersEventHandler <T> >((options, context) => new MembersEventHandler <T>(context));
        }
Esempio n. 3
0
        /// <summary>
        /// Configure Identity User Manager for Umbraco
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="app"></param>
        public static void ConfigureUserManagerForUmbraco <T>(this IAppBuilder app)
            where T : UmbracoIdentityUser, new()
        {
            //Don't proceed if the app is not ready
            if (!ApplicationContext.Current.IsConfigured ||
                ApplicationContext.Current.DatabaseContext == null ||
                !ApplicationContext.Current.DatabaseContext.IsDatabaseConfigured)
            {
                return;
            }

            //Configure Umbraco user manager to be created per request
            app.CreatePerOwinContext <UmbracoMembersUserManager <T> >(
                (o, c) => UmbracoMembersUserManager <T> .Create(
                    o, c, ApplicationContext.Current.Services.MemberService));

            //Configure Umbraco member event handler to be created per request - this will ensure that the
            // external logins are kept in sync if members are deleted from Umbraco
            app.CreatePerOwinContext <MembersEventHandler <T> >((options, context) => new MembersEventHandler <T>(context));

            //TODO: This is just for the mem leak fix
            app.CreatePerOwinContext <OwinContextDisposal <MembersEventHandler <T>, UmbracoMembersUserManager <T> > >(
                (o, c) => new OwinContextDisposal <MembersEventHandler <T>, UmbracoMembersUserManager <T> >(c));
        }