/// <summary> /// Updates information about a user in the data source. /// </summary> /// <param name="user">A <see cref="T:System.Web.Security.MembershipUser"></see> object that represents the user to update and the updated information for the user.</param> public override void UpdateUser(MembershipUser user) { UsersMembershipUser umbracoUser = user as UsersMembershipUser; int userID = 0; if (int.TryParse(umbracoUser.ProviderUserKey.ToString(), out userID)) { try { User.Update(userID, umbracoUser.FullName, umbracoUser.UserName, umbracoUser.Email, umbracoUser.UserType); } catch (Exception) { throw new ProviderException("User cannot be updated."); } } }
/// <summary> /// Adds a new membership user to the data source. /// </summary> /// <param name="username">The user name for the new user.</param> /// <param name="password">The password for the new user.</param> /// <param name="email">The e-mail address for the new user.</param> /// <param name="passwordQuestion">The password question for the new user.</param> /// <param name="passwordAnswer">The password answer for the new user</param> /// <param name="isApproved">Whether or not the new user is approved to be validated.</param> /// <param name="providerUserKey">The unique identifier from the membership data source for the user.</param> /// <param name="status">A <see cref="T:System.Web.Security.MembershipCreateStatus"></see> enumeration value indicating whether the user was created successfully.</param> /// <returns> /// A <see cref="T:System.Web.Security.MembershipUser"></see> object populated with the information for the newly created user. /// </returns> public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return(null); } // Does umbraco allow duplicate emails?? //if (RequiresUniqueEmail && !string.IsNullOrEmpty(GetUserNameByEmail(email))) //{ // status = MembershipCreateStatus.DuplicateEmail; // return null; //} UsersMembershipUser u = GetUser(username, false) as UsersMembershipUser; if (u == null) { try { // Get the usertype of the current user BusinessLogic.UserType ut = BusinessLogic.UserType.GetUserType(1); if (umbraco.BasePages.UmbracoEnsuredPage.CurrentUser != null) { ut = umbraco.BasePages.UmbracoEnsuredPage.CurrentUser.UserType; } User.MakeNew(username, username, password, ut); status = MembershipCreateStatus.Success; } catch (Exception) { status = MembershipCreateStatus.ProviderError; } return(GetUser(username, false)); } else { status = MembershipCreateStatus.DuplicateUserName; return(null); } }