2017年11月7日 星期二

How to save the Umbraco member password via code

Environment
- Umbraco version 7.7.4


public static int CreateMember(string usernameWithDomain, string name, string email, string password = null, List<string> roleNames = null, List<KeyValuePair<string, string>> properties = null, string memberType = "Member")
        {            
            try
            {
                IMember member = ApplicationContext.Current.Services.MemberService.CreateMember(usernameWithDomain, email, name, memberType);

                member.IsApproved = true;
                if (properties != null)
                {
                    foreach (var property in properties)
                    {
                        member.SetValue(property.Key, property.Value);
                    }
                }

                ApplicationContext.Current.Services.MemberService.Save(member);

                if (string.IsNullOrEmpty(password))
                {
                    password = Guid.NewGuid().ToString().Substring(0, 8);
                }
                ApplicationContext.Current.Services.MemberService.SavePassword(member, password);
                
                if (roleNames != null)
                {
                    foreach (string roleName in roleNames)
                    {
                        if (!String.IsNullOrEmpty(roleName))
                        {
                            ApplicationContext.Current.Services.MemberService.AssignRole(member.Id, roleName);
                        }
                    }
                }

                LogHelper.Info<MemberHelper>(string.Format("{0}(name) created, {1}(id)", name, member.Id));
                return member.Id;
            }
            catch (Exception ex)
            {
                LogHelper.Error<MemberHelper>("CreateMember exception: ", ex);
                return -1;
            }
        }

web.config

allowManuallyChangingPassword="true" 

沒有留言:

張貼留言