Example #1
0
        public void Configuration(IAppBuilder app)
        {
            var applicationContext = ApplicationContext.Current;

            app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(
                applicationContext,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = BackOfficeUserManager.Create(options,
                                                                      applicationContext.Services.UserService,
                                                                      applicationContext.Services.ExternalLoginService,
                                                                      membershipProvider);

                // Overrides Umbraco's password checker
                var latchOperationSvc = new LatchOperationService(applicationContext.DatabaseContext.Database, applicationContext.Services.TextService, applicationContext.Services.UserService);
                userManager.BackOfficeUserPasswordChecker = new LatchLoginChecker(latchOperationSvc, applicationContext.Services.TextService, userManager.PasswordHasher);
                return(userManager);
            });

            //Ensure owin is configured for Umbraco back office authentication
            app
            .UseUmbracoBackOfficeCookieAuthentication(ApplicationContext.Current)
            .UseUmbracoBackOfficeExternalCookieAuthentication(ApplicationContext.Current);
        }
Example #2
0
        public void Configuration(IAppBuilder app)
        {
            //Configure the Identity user manager for use with Umbraco Back office

            var applicationContext = ApplicationContext.Current;

            app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(
                applicationContext,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = BackOfficeUserManager.Create(options,
                                                                      applicationContext.Services.UserService,
                                                                      applicationContext.Services.ExternalLoginService,
                                                                      membershipProvider);

                // Call custom passowrd checker.
                userManager.BackOfficeUserPasswordChecker = new BackofficeMembershipProviderPasswordChecker();

                return(userManager);
            });

            //Ensure owin is configured for Umbraco back office authentication
            app
            .UseUmbracoBackOfficeCookieAuthentication(ApplicationContext.Current)
            .UseUmbracoBackOfficeExternalCookieAuthentication(ApplicationContext.Current);
        }
Example #3
0
        public static MembershipUser GetAccessingMembershipUser(int documentId)
        {
            var content = ApplicationContext.Current.Services.ContentService.GetById(documentId);

            if (content == null)
            {
                return(null);
            }

            var entry = ApplicationContext.Current.Services.PublicAccessService.GetEntryForContent(content);

            if (entry == null)
            {
                return(null);
            }

            //legacy would throw an exception here if it was not 'simple' and simple means based on a username
            if (entry.Rules.All(x => x.RuleType != Constants.Conventions.PublicAccess.MemberUsernameRuleType))
            {
                throw new Exception("Document isn't protected using Simple mechanism. Use GetAccessingMemberGroups instead");
            }

            var provider     = MembershipProviderExtensions.GetMembersMembershipProvider();
            var usernameRule = entry.Rules.First(x => x.RuleType == Constants.Conventions.PublicAccess.MemberUsernameRuleType);

            return(provider.GetUser(usernameRule.RuleValue, false));
        }
        private void ConfigureTwoFactorAuthentication(object sender, OwinMiddlewareConfiguredEventArgs args)
        {
            var app = args.AppBuilder;
            var applicationContext = ApplicationContext.Current;

            app.SetUmbracoLoggerFactory();
            app.UseTwoFactorSignInCookie(Umbraco.Core.Constants.Security.BackOfficeTwoFactorAuthenticationType, TimeSpan.FromMinutes(5));

            // We need to set these values again after our custom changes. Otherwise preview doesn't work.
            app.UseUmbracoBackOfficeCookieAuthentication(applicationContext)
            .UseUmbracoBackOfficeExternalCookieAuthentication(applicationContext)
            .UseUmbracoPreviewAuthentication(applicationContext);

            app.ConfigureUserManagerForUmbracoBackOffice <TwoFactorBackOfficeUserManager, BackOfficeIdentityUser>(
                applicationContext,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = TwoFactorBackOfficeUserManager.Create(options,
                                                                               applicationContext.Services.UserService,
                                                                               applicationContext.Services.EntityService,
                                                                               applicationContext.Services.ExternalLoginService,
                                                                               membershipProvider);
                return(userManager);
            });
        }
Example #5
0
        /// <summary>
        /// This is simply a helper method which essentially just wraps the MembershipProvider's ChangePassword method
        /// </summary>
        /// <remarks>
        /// This method exists so that Umbraco developers can use one entry point to create/update users if they choose to.
        /// </remarks>
        /// <param name="user">The user to save the password for</param>
        /// <param name="password">The password to save</param>
        public void SavePassword(IUser user, string password)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            var provider = MembershipProviderExtensions.GetUsersMembershipProvider();

            if (provider.IsUmbracoMembershipProvider() == false)
            {
                throw new NotSupportedException("When using a non-Umbraco membership provider you must change the user password by using the MembershipProvider.ChangePassword method");
            }

            provider.ChangePassword(user.Username, "", password);

            //go re-fetch the member and update the properties that may have changed
            var result = GetByUsername(user.Username);

            if (result != null)
            {
                //should never be null but it could have been deleted by another thread.
                user.RawPasswordValue       = result.RawPasswordValue;
                user.LastPasswordChangeDate = result.LastPasswordChangeDate;
                user.UpdateDate             = user.UpdateDate;
            }
        }
        private void BindRp()
        {
            var    provider = MembershipProviderExtensions.GetMembersMembershipProvider();
            string letter   = Request.QueryString["letter"];

            if (string.IsNullOrEmpty(letter) == false)
            {
                if (provider.IsUmbracoMembershipProvider())
                {
                    if (letter == "#")
                    {
                        rp_members.DataSource = cms.businesslogic.member.Member.getAllOtherMembers();
                    }
                    else
                    {
                        rp_members.DataSource = cms.businesslogic.member.Member.getMemberFromFirstLetter(letter.ToCharArray()[0]);
                    }
                }
                else
                {
                    rp_members.DataSource = provider.FindUsersByName(letter + "%");
                }
                rp_members.DataBind();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();

            if (provider.IsUmbracoMembershipProvider())
            {
                ButtonSearch.Text = ui.Text("search");
            }
        }
Example #8
0
 public static bool HasAccess(int documentId, object memberId)
 {
     return(ApplicationContext.Current.Services.PublicAccessService.HasAccess(
                documentId,
                memberId,
                ApplicationContext.Current.Services.ContentService,
                MembershipProviderExtensions.GetMembersMembershipProvider(),
                //TODO: This should really be targeting a specific provider by name!!
                Roles.Provider));
 }
Example #9
0
        public override bool PerformDelete()
        {
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();
            var u        = provider.GetUser(Alias, false);

            if (u == null)
            {
                return(false);
            }
            provider.DeleteUser(u.UserName, true);
            return(true);
        }
Example #10
0
        /// <summary>
        /// Validation to Check if Member with email Exists
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void EmailExistsCheck(object sender, ServerValidateEventArgs e)
        {
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();

            if (Email.Text != "" && Member.GetMemberFromEmail(Email.Text.ToLower()) != null && provider.RequiresUniqueEmail)
            {
                e.IsValid = false;
            }
            else
            {
                e.IsValid = true;
            }
        }
Example #11
0
        public void Configuration(IAppBuilder app)
        {
            // Configure back office users membership provider
            app.ConfigureUserManagerForUmbracoBackOffice(
                ApplicationContext.Current,
                MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider());

            // Ensure OWIN is configured for Umbraco back office authentication
            app.UseUmbracoBackOfficeCookieAuthentication(ApplicationContext.Current)
            .UseUmbracoBackOfficeExternalCookieAuthentication(ApplicationContext.Current);

            // Configure additional back office authentication options
            app.ConfigureBackOfficeAdfsAuthentication();
        }
        private void ConfigureTwoFactorAuthentication(object sender, OwinMiddlewareConfiguredEventArgs args)
        {
            var app = args.AppBuilder;
            var applicationContext = Umbraco.Core.Composing.Current.Services;

            IGlobalSettings         GlobalSettings  = Umbraco.Core.Composing.Current.Configs.Global();
            IUmbracoSettingsSection UmbracoSettings = Umbraco.Core.Composing.Current.Configs.Settings();
            UmbracoMapper           umbracoMapper   = Umbraco.Core.Composing.Current.Mapper;

            //netser/////////////////////////

            /* var oAuthServerOptions = new OAuthAuthorizationServerOptions
             *
             * {
             *   AllowInsecureHttp = true,
             *   TokenEndpointPath = new PathString("/token"),
             *   AccessTokenExpireTimeSpan = TimeSpan.FromDays(1)
             * };
             * // Token Generation
             * app.UseOAuthAuthorizationServer(oAuthServerOptions);
             * app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());*/
            ////////////////////end netser

            app.SetUmbracoLoggerFactory();
            app.UseTwoFactorSignInCookie(Umbraco.Core.Constants.Security.BackOfficeTwoFactorAuthenticationType, TimeSpan.FromMinutes(5));

            // app.UseOAuthAuthorizationServer(options);
            // app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
            // We need to set these values again after our custom changes. Otherwise preview doesn't work.
            // Gunni: Apparently we don't need this for preview to work and the following code breaks other Identity providers
            //app.UseUmbracoBackOfficeCookieAuthentication(umbracoContextAccessor, Umbraco.Web.Composing.Current.RuntimeState, applicationContext.UserService, GlobalSettings, securitySection)
            //    .UseUmbracoBackOfficeExternalCookieAuthentication(umbracoContextAccessor, runtimeState, GlobalSettings)
            //    .UseUmbracoPreviewAuthentication(umbracoContextAccessor, runtimeState, globalSettings, securitySection);

            app.ConfigureUserManagerForUmbracoBackOffice <TwoFactorBackOfficeUserManager, BackOfficeIdentityUser>(
                Umbraco.Web.Composing.Current.RuntimeState,
                GlobalSettings,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = TwoFactorBackOfficeUserManager.Create(options,
                                                                               applicationContext.UserService,
                                                                               applicationContext.MemberTypeService,
                                                                               applicationContext.EntityService,
                                                                               applicationContext.ExternalLoginService,
                                                                               membershipProvider, GlobalSettings, umbracoMapper);
                return(userManager);
            });
        }
Example #13
0
        public override bool PerformSave()
        {
            var nameAndMail = Alias.Split("|".ToCharArray());
            var name        = nameAndMail[0];
            var email       = nameAndMail.Length > 0 ? nameAndMail[1] : "";
            var password    = nameAndMail.Length > 1 ? nameAndMail[2] : "";
            var loginName   = nameAndMail.Length > 2 ? nameAndMail[3] : "";

            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();

            if (provider.IsUmbracoMembershipProvider() && TypeID != -1)
            {
                var dt             = new MemberType(TypeID);
                var castedProvider = (UmbracoMembershipProviderBase)provider;
                MembershipCreateStatus status;

                //First create with the membership provider
                //TODO: We are not supporting q/a - passing in empty here
                var created = castedProvider.CreateUser(dt.Alias,
                                                        loginName.Replace(" ", "").ToLower(), //dunno why we're doing this but that's how it has been so i'll leave it i guess
                                                        password, email, "", "", true, Guid.NewGuid(), out status);
                if (status != MembershipCreateStatus.Success)
                {
                    throw new Exception("Error creating Member: " + status);
                }

                //update the name
                var member = Member.GetMemberFromLoginName(created.UserName);
                member.Text = name;
                member.Save();

                var e = new NewMemberUIEventArgs();
                this.OnNewMember(e, password, member);

                _returnUrl = "members/editMember.aspx?id=" + member.Id.ToString(CultureInfo.InvariantCulture);
            }
            else
            {
                MembershipCreateStatus mc;
                provider.CreateUser(name, password, email, "empty", "empty", true, null, out mc);
                if (mc != MembershipCreateStatus.Success)
                {
                    throw new Exception("Error creating Member: " + mc);
                }
                _returnUrl = "members/editMember.aspx?id=" + HttpUtility.UrlEncode(name);
            }

            return(true);
        }
        protected override void CreateRootNode(ref XmlTreeNode rootNode)
        {
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();

            // only show member types if we're using umbraco members on the website
            if (provider.IsUmbracoMembershipProvider())
            {
                rootNode.NodeType = "init" + TreeAlias;
                rootNode.NodeID   = "init";
            }
            else
            {
                rootNode = null;
            }
        }
 /// <summary>
 /// Returns the currently configured membership scenario for members in umbraco
 /// </summary>
 /// <value></value>
 internal static MembershipScenario GetMembershipScenario(this IMemberService memberService)
 {
     if (_scenario.HasValue == false)
     {
         var provider = MembershipProviderExtensions.GetMembersMembershipProvider();
         if (provider.IsUmbracoMembershipProvider())
         {
             return(MembershipScenario.NativeUmbraco);
         }
         var memberType = Current.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias);
         return(memberType != null
                    ? MembershipScenario.CustomProviderWithUmbracoLink
                    : MembershipScenario.StandaloneCustomProvider);
     }
     return(_scenario.Value);
 }
Example #16
0
        public virtual IUserRepository CreateUserRepository(IScopeUnitOfWork uow)
        {
            var userMembershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider();
            var passwordConfig         = userMembershipProvider == null || userMembershipProvider.PasswordFormat != MembershipPasswordFormat.Hashed
                ? null
                : new System.Collections.Generic.Dictionary <string, string> {
                { "hashAlgorithm", Membership.HashAlgorithmType }
            };

            return(new UserRepository(
                       uow,
                       //Need to cache users - we look up user information more than anything in the back office!
                       _cacheHelper,
                       _logger,
                       _sqlSyntax,
                       passwordConfig));
        }
Example #17
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();

            sbmt.Text = ui.Text("create");
            if (provider.IsUmbracoMembershipProvider())
            {
                nameLiteral.Text = ui.Text("name");
                memberChooser.Attributes.Add("style", "padding-top: 10px");
                foreach (var dt in MemberType.GetAll)
                {
                    ListItem li = new ListItem();
                    li.Text  = dt.Text;
                    li.Value = dt.Id.ToString();
                    nodeType.Items.Add(li);
                }
            }
            else
            {
                nameLiteral.Text      = ui.Text("login");
                memberChooser.Visible = false;
            }

            string[] pwRules =
            {
                provider.MinRequiredPasswordLength.ToString(CultureInfo.InvariantCulture),
                provider.MinRequiredNonAlphanumericCharacters.ToString(CultureInfo.InvariantCulture)
            };

            PasswordRules.Text = PasswordRules.Text = ui.Text(
                "errorHandling", "", pwRules, UmbracoEnsuredPage.CurrentUser);

            if (!IsPostBack)
            {
                passwordRequired.ErrorMessage   = ui.Text("errorHandling", "errorMandatoryWithoutTab", ui.Text("password"), BasePages.UmbracoEnsuredPage.CurrentUser);
                nameRequired.ErrorMessage       = ui.Text("errorHandling", "errorMandatoryWithoutTab", nameLiteral.Text, BasePages.UmbracoEnsuredPage.CurrentUser);
                emailRequired.ErrorMessage      = ui.Text("errorHandling", "errorMandatoryWithoutTab", "E-mail", BasePages.UmbracoEnsuredPage.CurrentUser);
                loginRequired.ErrorMessage      = ui.Text("errorHandling", "errorMandatoryWithoutTab", "Login Name", BasePages.UmbracoEnsuredPage.CurrentUser);
                loginExistsCheck.ErrorMessage   = ui.Text("errorHandling", "errorExistsWithoutTab", "Login Name", BasePages.UmbracoEnsuredPage.CurrentUser);
                emailExistsCheck.ErrorMessage   = ui.Text("errorHandling", "errorExistsWithoutTab", "E-mail", BasePages.UmbracoEnsuredPage.CurrentUser);
                memberTypeRequired.ErrorMessage = ui.Text("errorHandling", "errorMandatoryWithoutTab", "Member Type", BasePages.UmbracoEnsuredPage.CurrentUser);
                Password.Text =
                    Membership.GeneratePassword(provider.MinRequiredPasswordLength, provider.MinRequiredNonAlphanumericCharacters);
            }
        }
Example #18
0
        public override bool PerformSave()
        {
            // Hot damn HACK > user is allways UserType with id  = 1  = administrator ???
            // temp password deleted by NH
            //BusinessLogic.User.MakeNew(Alias, Alias, "", BusinessLogic.UserType.GetUserType(1));
            //return true;

            var provider = MembershipProviderExtensions.GetUsersMembershipProvider();

            var status = MembershipCreateStatus.ProviderError;

            try
            {
                // Password is auto-generated. They are they required to change the password by editing the user information.

                var password = Membership.GeneratePassword(
                    provider.MinRequiredPasswordLength,
                    provider.MinRequiredNonAlphanumericCharacters);

                var parts = Alias.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                if (parts.Length != 2)
                {
                    return(false);
                }
                var login = parts[0];
                var email = parts[1];

                var u = provider.CreateUser(
                    login, password, email.Trim().ToLower(), "", "", true, null, out status);

                if (u == null)
                {
                    return(false);
                }

                _returnUrl = string.Format("users/EditUser.aspx?id={0}", u.ProviderUserKey);

                return(status == MembershipCreateStatus.Success);
            }
            catch (Exception ex)
            {
                LogHelper.Error <userTasks>(string.Format("Failed to create the user. Error from provider: {0}", status.ToString()), ex);
                return(false);
            }
        }
Example #19
0
        /// <summary>
        /// Creates a BackOfficeUserManager instance with all default options and the default BackOfficeUserManager
        /// </summary>
        /// <param name="options"></param>
        /// <param name="userService"></param>
        /// <param name="externalLoginService"></param>
        /// <param name="membershipProvider"></param>
        /// <returns></returns>
        public static CustomBackOfficeUserManager Create(IdentityFactoryOptions <CustomBackOfficeUserManager> options, ApplicationContext applicationContext)
        {
            var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();

            var userService          = applicationContext.Services.UserService;
            var entityService        = applicationContext.Services.EntityService;
            var externalLoginService = applicationContext.Services.ExternalLoginService;

            var contentSectionConfig = UmbracoConfig.For.UmbracoSettings().Content;

            var manager = new CustomBackOfficeUserManager(new CustomBackOfficeUserStore(userService, entityService, externalLoginService, membershipProvider));

            manager.InitUserManager(manager, membershipProvider, options.DataProtectionProvider, contentSectionConfig);

            manager.RegisterTwoFactorProvider("DefaultProvider", new DefaultTwoFactorProvider(options.DataProtectionProvider.Create("DefaultProvider")));

            return(manager);
        }
        public override void Configuration(IAppBuilder app)
        {
            app.SetUmbracoLoggerFactory();

            var appContext = ApplicationContext.Current;

            app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(
                appContext,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var store = new BackOfficeUserStore(appContext.Services.UserService, appContext.Services.ExternalLoginService, membershipProvider);
                return(UmbracoEasyADUserManager.InitUserManager(store, membershipProvider, options));
            });

            app.UseUmbracoBackOfficeCookieAuthentication(appContext)
            .UseUmbracoBackOfficeExternalCookieAuthentication(appContext);
        }
        void Member_New(Member sender, NewEventArgs e)
        {
            //This is a bit of a hack to ensure that the member is approved when created since many people will be using
            // this old api to create members on the front-end and they need to be approved - which is based on whether or not
            // the Umbraco membership provider is configured.
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider() as UmbracoMembershipProvider;

            if (provider != null)
            {
                var approvedField = provider.ApprovedPropertyTypeAlias;
                var property      = sender.getProperty(approvedField);
                if (property != null)
                {
                    property.Value = 1;
                    sender.Save();
                }
            }
        }
        public override void Up()
        {
            //Don't exeucte if the column is already there
            var columns = SqlSyntax.GetColumnsInSchema(Context.Database).ToArray();

            if (columns.Any(x => x.TableName.InvariantEquals("umbracoUser") && x.ColumnName.InvariantEquals("createDate")) == false)
            {
                Create.Column("createDate").OnTable("umbracoUser").AsDateTime().NotNullable().WithDefault(SystemMethods.CurrentDateTime);
            }

            if (columns.Any(x => x.TableName.InvariantEquals("umbracoUser") && x.ColumnName.InvariantEquals("updateDate")) == false)
            {
                Create.Column("updateDate").OnTable("umbracoUser").AsDateTime().NotNullable().WithDefault(SystemMethods.CurrentDateTime);
            }

            if (columns.Any(x => x.TableName.InvariantEquals("umbracoUser") && x.ColumnName.InvariantEquals("emailConfirmedDate")) == false)
            {
                Create.Column("emailConfirmedDate").OnTable("umbracoUser").AsDateTime().Nullable();
            }

            if (columns.Any(x => x.TableName.InvariantEquals("umbracoUser") && x.ColumnName.InvariantEquals("invitedDate")) == false)
            {
                Create.Column("invitedDate").OnTable("umbracoUser").AsDateTime().Nullable();
            }

            if (columns.Any(x => x.TableName.InvariantEquals("umbracoUser") && x.ColumnName.InvariantEquals("avatar")) == false)
            {
                Create.Column("avatar").OnTable("umbracoUser").AsString(500).Nullable();
            }

            if (columns.Any(x => x.TableName.InvariantEquals("umbracoUser") && x.ColumnName.InvariantEquals("passwordConfig")) == false)
            {
                Create.Column("passwordConfig").OnTable("umbracoUser").AsString(500).Nullable();
                //Check if we have a known config, we only want to store config for hashing
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider();
                if (membershipProvider.PasswordFormat == MembershipPasswordFormat.Hashed)
                {
                    var json = JsonConvert.SerializeObject(new { hashAlgorithm = Membership.HashAlgorithmType });
                    Execute.Sql("UPDATE umbracoUser SET passwordConfig = '" + json + "'");
                }
            }
        }
        private void ConfigureTwoFactorAuthentication(object sender, OwinMiddlewareConfiguredEventArgs args)
        {
            var app = args.AppBuilder;
            var applicationContext = ApplicationContext.Current;

            //netser/////////////////////////

            /* var oAuthServerOptions = new OAuthAuthorizationServerOptions
             *
             * {
             *   AllowInsecureHttp = true,
             *   TokenEndpointPath = new PathString("/token"),
             *   AccessTokenExpireTimeSpan = TimeSpan.FromDays(1)
             * };
             * // Token Generation
             * app.UseOAuthAuthorizationServer(oAuthServerOptions);
             * app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());*/
            ////////////////////end netser

            app.SetUmbracoLoggerFactory();
            app.UseTwoFactorSignInCookie(Umbraco.Core.Constants.Security.BackOfficeTwoFactorAuthenticationType, TimeSpan.FromMinutes(5));

            // app.UseOAuthAuthorizationServer(options);
            // app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
            // We need to set these values again after our custom changes. Otherwise preview doesn't work.
            app.UseUmbracoBackOfficeCookieAuthentication(applicationContext)
            .UseUmbracoBackOfficeExternalCookieAuthentication(applicationContext)
            .UseUmbracoPreviewAuthentication(applicationContext);     /**/

            app.ConfigureUserManagerForUmbracoBackOffice <TwoFactorBackOfficeUserManager, BackOfficeIdentityUser>(
                applicationContext,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = TwoFactorBackOfficeUserManager.Create(options,
                                                                               applicationContext.Services.UserService,
                                                                               applicationContext.Services.EntityService,
                                                                               applicationContext.Services.ExternalLoginService,
                                                                               membershipProvider);
                return(userManager);
            });
        }
        public void Build(IContainer container)
        {
            container.Register(() =>
            {
                var userManager = BackOfficeUserManager.Create(
                    new IdentityFactoryOptions <BackOfficeUserManager>
                {
                    Provider = new IdentityFactoryProvider <BackOfficeUserManager>()
                },
                    container.Resolve <IUserService>(),
                    container.Resolve <IEntityService>(),
                    container.Resolve <IExternalLoginService>(),
                    MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider(),
                    UmbracoConfig.For.UmbracoSettings().Content
                    );

                return(userManager);
            })
            .As <BackOfficeUserManager <BackOfficeIdentityUser> >();
        }
        /// <summary>
        /// Configure user manager for use with Active Directory
        /// </summary>
        /// <param name="app"></param>
        protected override void ConfigureUmbracoUserManager(IAppBuilder app)
        {
            app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(
                ApplicationContext,
                (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = BackOfficeUserManager.Create(options,
                                                                      ApplicationContext.Services.UserService,
                                                                      ApplicationContext.Services.EntityService,
                                                                      ApplicationContext.Services.ExternalLoginService,
                                                                      membershipProvider,
                                                                      UmbracoConfig.For.UmbracoSettings().Content);

                // Configure custom password checker.
                userManager.BackOfficeUserPasswordChecker = new BackofficeMembershipProviderPasswordChecker();

                return(userManager);
            });
        }
Example #26
0
        /// <summary>
        /// Configure user manager for use with Active Directory
        /// </summary>
        /// <param name="app"></param>
        protected override void ConfigureUmbracoUserManager(IAppBuilder app)
        {
            app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(Current.RuntimeState, Current.Configs.Global(),
                                                                                                         (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = BackOfficeUserManager.Create(options,
                                                                      Current.Services.UserService,
                                                                      Current.Services.MemberTypeService,
                                                                      Current.Services.EntityService,
                                                                      Current.Services.ExternalLoginService,
                                                                      membershipProvider,
                                                                      UmbracoSettings.Content,
                                                                      Current.Configs.Global());

                // Configure custom password checker.
                userManager.BackOfficeUserPasswordChecker = new BackofficeMembershipProviderPasswordChecker();

                return(userManager);
            });
        }
        public void UnlockByKey(Guid key)
        {
            var membershipProvider = MembershipProviderExtensions.GetMembersMembershipProvider();
            var member             = membershipProvider.GetUser(key, false);

            // if they were locked but now they are trying to be unlocked
            if (member != null && member.IsLockedOut)
            {
                try
                {
                    var result = membershipProvider.UnlockUser(member.UserName);
                    if (result == false)
                    {
                        // it wasn't successful - but it won't really tell us why.
                        ModelState.AddModelError("", "Could not unlock the user");
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex);
                }
            }
        }
Example #28
0
 /// <summary>
 /// Configure the Identity user manager for use with Umbraco Back office
 /// </summary>
 /// <param name="app"></param>
 protected override void ConfigureUmbracoUserManager(IAppBuilder app)
 {
     // Overload the following method to add a custom user-pass check
     app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(
         RuntimeState,
         GlobalSettings,
         (options, context) =>
     {
         var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
         var userManager        = BackOfficeUserManager.Create(
             options,
             Services.UserService,
             Services.MemberTypeService,
             Services.EntityService,
             Services.ExternalLoginService,
             membershipProvider,
             ContentSection,     //content section config
             GlobalSettings
             );
         userManager.BackOfficeUserPasswordChecker = new HybrideAuthenticator();
         return(userManager);
     });
 }
Example #29
0
        /// <summary>
        /// Configure user manager for use with Active Directory
        /// </summary>
        /// <param name="app"></param>
        protected override void ConfigureUmbracoUserManager(IAppBuilder app)
        {
            var                     applicationContext = Umbraco.Core.Composing.Current.Services;
            IGlobalSettings         GlobalSettings     = Umbraco.Core.Composing.Current.Configs.Global();
            IUmbracoSettingsSection UmbracoSettings    = Umbraco.Core.Composing.Current.Configs.Settings();

            app.ConfigureUserManagerForUmbracoBackOffice <BackOfficeUserManager, BackOfficeIdentityUser>(Umbraco.Web.Composing.Current.RuntimeState, GlobalSettings,
                                                                                                         (options, context) =>
            {
                var membershipProvider = MembershipProviderExtensions.GetUsersMembershipProvider().AsUmbracoMembershipProvider();
                var userManager        = BackOfficeUserManager.Create(options,
                                                                      applicationContext.UserService,
                                                                      applicationContext.MemberTypeService,
                                                                      applicationContext.EntityService,
                                                                      applicationContext.ExternalLoginService,
                                                                      membershipProvider,
                                                                      Mapper,
                                                                      UmbracoSettings.Content,
                                                                      GlobalSettings);
                userManager.BackOfficeUserPasswordChecker = new BackofficeMembershipProviderPasswordChecker();
                return(userManager);
            });
        }
        public void bindMember(object sender, RepeaterItemEventArgs e)
        {
            var provider = MembershipProviderExtensions.GetMembersMembershipProvider();

            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                if (provider.IsUmbracoMembershipProvider())
                {
                    cms.businesslogic.member.Member mem = (cms.businesslogic.member.Member)e.Item.DataItem;
                    Literal _name   = (Literal)e.Item.FindControl("lt_name");
                    Literal _email  = (Literal)e.Item.FindControl("lt_email");
                    Literal _login  = (Literal)e.Item.FindControl("lt_login");
                    Button  _button = (Button)e.Item.FindControl("bt_delete");

                    _name.Text  = "<a href='editMember.aspx?id=" + mem.Id.ToString() + "'>" + mem.Text + "</a>";
                    _login.Text = mem.LoginName;
                    _email.Text = mem.Email;

                    _button.CommandArgument = mem.Id.ToString();
                    _button.OnClientClick   = "return confirm(\"" + ui.Text("confirmdelete") + "'" + mem.Text + "' ?\")";
                    _button.Text            = ui.Text("delete");
                }
                else
                {
                    var     mem     = (MembershipUser)e.Item.DataItem;
                    Literal _name   = (Literal)e.Item.FindControl("lt_name");
                    Literal _email  = (Literal)e.Item.FindControl("lt_email");
                    Literal _login  = (Literal)e.Item.FindControl("lt_login");
                    Button  _button = (Button)e.Item.FindControl("bt_delete");

                    _name.Text      = "<a href='editMember.aspx?id=" + mem.UserName + "'>" + mem.UserName + "</a>";
                    _login.Text     = mem.UserName;
                    _email.Text     = mem.Email;
                    _button.Visible = false;
                }
            }
        }