/// <summary> /// Method to create a user manager which can be used to specify a custom IExternalLoginStore /// </summary> /// <param name="options"></param> /// <param name="memberService"></param> /// <param name="memberTypeService"></param> /// <param name="memberGroupService"></param> /// <param name="externalLoginStore"></param> /// <param name="membershipProvider"></param> /// <returns></returns> public static UmbracoMembersUserManager <TUser> Create( IdentityFactoryOptions <UmbracoMembersUserManager <TUser> > options, IMemberService memberService, IMemberTypeService memberTypeService, IMemberGroupService memberGroupService, IProfilingLogger profilingLogger, IScopeProvider scopeProvider, IExternalLoginStore externalLoginStore = null, IdentityEnabledMembersMembershipProvider membershipProvider = null) { //we'll grab some settings from the membership provider var provider = membershipProvider ?? Membership.Providers["UmbracoMembershipProvider"] as IdentityEnabledMembersMembershipProvider; if (provider == null) { throw new InvalidOperationException("In order to use " + typeof(UmbracoMembersUserManager <>) + " the Umbraco members membership provider must be of type " + typeof(IdentityEnabledMembersMembershipProvider)); } if (externalLoginStore == null) { //use the default externalLoginStore = new ExternalLoginStore(scopeProvider); } return(Create(options, new UmbracoMembersUserStore <TUser>(profilingLogger, memberService, memberTypeService, memberGroupService, provider, externalLoginStore), membershipProvider)); }
/// <summary> /// Method to create a user manager which can be used to specify a custom IExternalLoginStore /// </summary> /// <param name="options"></param> /// <param name="memberService"></param> /// <param name="memberTypeService"></param> /// <param name="memberGroupService"></param> /// <param name="externalLoginStore"></param> /// <param name="membershipProvider"></param> /// <returns></returns> public static UmbracoMembersUserManager <TUser> Create( IdentityFactoryOptions <UmbracoMembersUserManager <TUser> > options, IMemberService memberService, IMemberTypeService memberTypeService, IMemberGroupService memberGroupService, IExternalLoginStore externalLoginStore = null, IdentityEnabledMembersMembershipProvider membershipProvider = null) { //we'll grab some settings from the membership provider var provider = membershipProvider ?? Membership.Providers["UmbracoMembershipProvider"] as IdentityEnabledMembersMembershipProvider; if (provider == null) { throw new InvalidOperationException("In order to use " + typeof(UmbracoMembersUserManager <>) + " the Umbraco members membership provider must be of type " + typeof(IdentityEnabledMembersMembershipProvider)); } if (externalLoginStore == null) { //we need to rely on singletons here due to backwards compat //use the default externalLoginStore = new ExternalLoginStore( ApplicationContext.Current.ProfilingLogger.Logger, ApplicationContext.Current.DatabaseContext); } return(Create(options, new UmbracoMembersUserStore <TUser>(ApplicationContext.Current.ProfilingLogger.Logger, memberService, memberTypeService, memberGroupService, provider, externalLoginStore), membershipProvider)); }
/// <summary> /// Default method to create a user manager /// </summary> /// <param name="options"></param> /// <param name="logger"></param> /// <param name="databaseContext"></param> /// <param name="memberService"></param> /// <param name="memberTypeService"></param> /// <param name="memberGroupService"></param> /// <param name="membershipProvider"></param> /// <returns></returns> public static UmbracoMembersUserManager <TUser> Create( IdentityFactoryOptions <UmbracoMembersUserManager <TUser> > options, ILogger logger, DatabaseContext databaseContext, IMemberService memberService, IMemberTypeService memberTypeService, IMemberGroupService memberGroupService, IdentityEnabledMembersMembershipProvider membershipProvider = null) { //we'll grab some settings from the membership provider var provider = membershipProvider ?? Membership.Providers["UmbracoMembershipProvider"] as IdentityEnabledMembersMembershipProvider; if (provider == null) { throw new InvalidOperationException("In order to use " + typeof(UmbracoMembersUserManager <>) + " the Umbraco members membership provider must be of type " + typeof(IdentityEnabledMembersMembershipProvider)); } var externalLoginStore = new ExternalLoginStore(logger, databaseContext); return(Create(options, new UmbracoMembersUserStore <TUser>(logger, memberService, memberTypeService, memberGroupService, provider, externalLoginStore), membershipProvider)); }
public static UmbracoMembersUserManager <T> Create( IdentityFactoryOptions <UmbracoMembersUserManager <T> > options, IOwinContext context, IMemberService memberService, IExternalLoginStore externalLoginStore = null) { //we'll grab some settings from the membership provider var provider = Membership.Providers["UmbracoMembershipProvider"] as IdentityEnabledMembersMembershipProvider; if (provider == null) { throw new InvalidOperationException("In order to use " + typeof(UmbracoMembersUserManager <>) + " the Umbraco members membership provider must be of type " + typeof(IdentityEnabledMembersMembershipProvider)); } if (externalLoginStore == null) { //use the default externalLoginStore = new ExternalLoginStore(); } var manager = new UmbracoMembersUserManager <T>(new UmbracoMembersUserStore <T>(memberService, provider, externalLoginStore)); // Configure validation logic for usernames manager.UserValidator = new UserValidator <T, int>(manager) { AllowOnlyAlphanumericUserNames = false, RequireUniqueEmail = true }; // Configure validation logic for passwords manager.PasswordValidator = new PasswordValidator { RequiredLength = provider.MinRequiredPasswordLength, RequireNonLetterOrDigit = provider.MinRequiredNonAlphanumericCharacters > 0, RequireDigit = false, RequireLowercase = false, RequireUppercase = false }; //use a custom hasher based on our membership provider manager.PasswordHasher = new MembershipPasswordHasher(provider); //NOTE: Not implementing these currently //// Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user //// You can write your own provider and plug in here. //manager.RegisterTwoFactorProvider("PhoneCode", new PhoneNumberTokenProvider<ApplicationUser> //{ // MessageFormat = "Your security code is: {0}" //}); //manager.RegisterTwoFactorProvider("EmailCode", new EmailTokenProvider<ApplicationUser> //{ // Subject = "Security Code", // BodyFormat = "Your security code is: {0}" //}); //manager.EmailService = new EmailService(); //manager.SmsService = new SmsService(); var dataProtectionProvider = options.DataProtectionProvider; if (dataProtectionProvider != null) { manager.UserTokenProvider = new DataProtectorTokenProvider <T, int>(dataProtectionProvider.Create("ASP.NET Identity")); } return(manager); }