/// <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)); }
public UmbracoMembersUserStore( IMemberService memberService, IMemberTypeService memberTypeService, IdentityEnabledMembersMembershipProvider membershipProvider, IExternalLoginStore externalLoginStore) { if (memberService == null) { throw new ArgumentNullException("memberService"); } if (membershipProvider == null) { throw new ArgumentNullException("membershipProvider"); } if (externalLoginStore == null) { throw new ArgumentNullException("externalLoginStore"); } _memberService = memberService; _memberTypeService = memberTypeService; _membershipProvider = membershipProvider; _externalLoginStore = externalLoginStore; if (_membershipProvider.PasswordFormat != MembershipPasswordFormat.Hashed) { throw new InvalidOperationException("Cannot use ASP.Net Identity with UmbracoMembersUserStore when the password format is not Hashed"); } }
public UmbracoMembersUserStore( IMemberService memberService, IMemberTypeService memberTypeService, IMemberGroupService memberGroupService, IdentityEnabledMembersMembershipProvider membershipProvider, IExternalLoginStore externalLoginStore) : this(ApplicationContext.Current.ProfilingLogger.Logger, memberService, memberTypeService, memberGroupService, membershipProvider, externalLoginStore) { }
public UmbracoMembersUserStore( ILogger logger, IMemberService memberService, IMemberTypeService memberTypeService, IMemberGroupService memberGroupService, IdentityEnabledMembersMembershipProvider membershipProvider, IExternalLoginStore externalLoginStore) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _memberService = memberService ?? throw new ArgumentNullException("memberService"); _memberTypeService = memberTypeService; _memberGroupService = memberGroupService ?? throw new ArgumentNullException(nameof(memberGroupService)); _membershipProvider = membershipProvider ?? throw new ArgumentNullException("membershipProvider"); _externalLoginStore = externalLoginStore ?? throw new ArgumentNullException("externalLoginStore"); if (_membershipProvider.PasswordFormat != MembershipPasswordFormat.Hashed) { throw new InvalidOperationException("Cannot use ASP.Net Identity with UmbracoMembersUserStore when the password format is not Hashed"); } }
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); }