public override void UpdateUser(Sys.MembershipUser muser) { using (var db = new Context()) { User user = null; if (muser.ProviderUserKey is Guid) { var uid = (Guid)muser.ProviderUserKey; user = db.AppActiveUsers<MembershipProvider>().FirstOrDefault(u => u.UserId == uid); } if (user == null) user = db.AppActiveUsers<MembershipProvider>().FirstOrDefault(u => u.UserName == muser.UserName); if (user != null) { user.Comment = muser.Comment; user.CreationDate = muser.CreationDate; user.Email = muser.Email; user.IsApproved = muser.IsApproved; user.LastActivityDate = muser.LastLoginDate; user.LastLoginDate = muser.LastLoginDate; db.SaveChanges(); } } }
private static string ErrorCodeToString(a.MembershipCreateStatus createStatus) { // See http://go.microsoft.com/fwlink/?LinkID=177550 for // a full list of status codes. switch (createStatus) { case a.MembershipCreateStatus.DuplicateUserName: return "User name already exists. Please enter a different user name."; case a.MembershipCreateStatus.DuplicateEmail: return "A user name for that e-mail address already exists. Please enter a different e-mail address."; case a.MembershipCreateStatus.InvalidPassword: return "The password provided is invalid. Please enter a valid password value."; case a.MembershipCreateStatus.InvalidEmail: return "The e-mail address provided is invalid. Please check the value and try again."; case a.MembershipCreateStatus.InvalidAnswer: return "The password retrieval answer provided is invalid. Please check the value and try again."; case a.MembershipCreateStatus.InvalidQuestion: return "The password retrieval question provided is invalid. Please check the value and try again."; case a.MembershipCreateStatus.InvalidUserName: return "The user name provided is invalid. Please check the value and try again."; case a.MembershipCreateStatus.ProviderError: return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator."; case a.MembershipCreateStatus.UserRejected: return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator."; default: return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."; } }
public override Sys.MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out Sys.MembershipCreateStatus status) { status = Sys.MembershipCreateStatus.Success; if (string.IsNullOrEmpty(username)) status = Sys.MembershipCreateStatus.InvalidUserName; //if (string.IsNullOrEmpty(email)) status = Sys.MembershipCreateStatus.InvalidEmail; if (!ValidPassword(password)) status = Sys.MembershipCreateStatus.InvalidPassword; if (RequiresQuestionAndAnswer) { if (string.IsNullOrEmpty(passwordQuestion)) status = Sys.MembershipCreateStatus.InvalidQuestion; if (string.IsNullOrEmpty(passwordAnswer)) status = Sys.MembershipCreateStatus.InvalidAnswer; } if (status != Sys.MembershipCreateStatus.Success) return null; using (var db = new Context()) { try { var user = db.AppUsers<MembershipProvider>().FirstOrDefault(u => u.UserName == username); if (user != null && user.IsDeleted) { db.Users.Remove(user); user = null; } User emailuser = null; if (!string.IsNullOrEmpty(email)) { emailuser = db.AppActiveUsers<MembershipProvider>().FirstOrDefault(u => u.Email == email); } if (user != null) status = Sys.MembershipCreateStatus.DuplicateUserName; if (emailuser != null && RequiresUniqueEmail) status = Sys.MembershipCreateStatus.DuplicateEmail; if (status != Sys.MembershipCreateStatus.Success) return null; User NewUser = new User { UserId = Guid.NewGuid(), UserName = username, IsConfirmed = true, Email = email, ConfirmationToken = null, CreationDate = DateTime.UtcNow, PasswordChangedDate = DateTime.UtcNow, PasswordFailuresSinceLastSuccess = 0, AnswerFailuresSinceLastSuccess = 0, LastPasswordFailureDate = null, LastActivityDate = DateTime.UtcNow, LastLoginDate = null, LastLockoutDate = null, PasswordQuestion = passwordQuestion, PasswordAnswer = passwordAnswer, IsApproved = isApproved, Application = Application.Current<MembershipProvider>(db) }; if (providerUserKey is Guid) NewUser.UserId = (Guid)providerUserKey; else NewUser.UserId = Guid.NewGuid(); NewUser.SetPassword(this, password); db.Users.Add(NewUser); db.SaveChanges(); return NewUser.MembershipUser; } catch (Exception ex) { status = Sys.MembershipCreateStatus.DuplicateUserName; return null; } } }