public override string CreateAccount(string userName, string password, bool requireConfirmationToken) { //if (String.IsNullOrEmpty(password)) // throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword); string passwordHash = ""; if(!string.IsNullOrEmpty(password)) passwordHash = Crypto.HashPassword(password); if (passwordHash.Length > 128) throw new MembershipCreateUserException(MembershipCreateStatus.InvalidPassword); if (String.IsNullOrEmpty(userName)) throw new MembershipCreateUserException(MembershipCreateStatus.InvalidUserName); var user = (from u in userProfiles where u.UserName == userName select u).FirstOrDefault(); if (user == null) throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError); if ((from m in memberships where m.UserId == user.UserId select m).Any()) throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateUserName); var token = requireConfirmationToken ? GenerateToken() : null; memberships.Add(new Webpages_Membership() { UserId = user.UserId, Password = passwordHash, CreateDate = DateTime.UtcNow, IsConfirmed = !requireConfirmationToken, PasswordFailuresSinceLastSuccess = 0, PasswordSalt = string.Empty, ConfirmationToken = token, PasswordChangedDate = DateTime.UtcNow }); var root = Webpages_Roles.GetOrCreateRoot(db: dbContext); var role = root.GetSubRoleByName(ConfigurationManager.AppSettings["SelfRegisterUserRole"], dbContext); if (role != null) { Webpages_UsersInRoles ur = new Webpages_UsersInRoles() { UserId = user.UserId, RoleCode = role.Code }; dbContext.WebPagesUsersInRoles.Add(ur); } try { dbContext.SaveChanges(); } catch (Exception e) { throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError.ToString(),e); } return token; }
public ActionResult CreateUser(Webpages_UserProfile user, string roleCode) { using (TransactionScope ts = new TransactionScope()) { if (db.UserProfiles.Where(o => o.UserName == user.UserName).Any()) { return Content("User Exist"); } db.UserProfiles.Add(user); db.SaveChanges(); Webpages_UsersInRoles userRole = new Webpages_UsersInRoles() { RoleCode = roleCode, UserId = user.UserId }; db.WebPagesUsersInRoles.Add(userRole); db.SaveChanges(); ts.Complete(); return Content(Boolean.TrueString); } }