/// <summary>
        /// Creates the Membership user and update Extended Membership user.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <param name="password">The password.</param>
        /// <param name="email">The email.</param>
        /// <param name="firstName">The first name.</param>
        /// <param name="lastName">The last name.</param>
        /// <param name="title"></param>
        /// <param name="hourlyRate"></param>
        /// <param name="address"></param>
        /// <param name="city"></param>
        /// <param name="state"></param>
        /// <param name="zip"></param>
        /// <param name="phone"></param>
        /// <param name="createUserStatus"></param>

        /// <returns></returns>
        public static MembershipUserExtended CreateUser(string userName, string password, string email, string firstName, string lastName, string title, double?hourlyRate, string address, string city, string state, string zip, string phone, out MembershipCreateStatus createUserStatus)
        {
            if (password.Length < 6)
            {
                password = Membership.GeneratePassword(6, 0);
            }


            var user = Membership.CreateUser(userName, password, email, passwordQuestion: null, passwordAnswer: null, isApproved: true, providerUserKey: null, status: out createUserStatus);

            if (createUserStatus == MembershipCreateStatus.Success)
            {
                using (var dbContext = new TimeTrackingEntities())
                {
                    try
                    {
                        var extendedUserProfile = dbContext.ExtendedUserProfiles.FirstOrDefault(u => u.UserName == user.UserName);

                        if (extendedUserProfile == null)
                        {
                            extendedUserProfile = new ExtendedUserProfile
                            {
                                UserId       = GetUserIdByUserName(user.UserName),
                                UserName     = user.UserName,
                                FirstName    = firstName,
                                LastName     = lastName,
                                TempPassword = password,
                                Title        = title,
                                HourlyRate   = hourlyRate,
                                Address      = address,
                                City         = city,
                                State        = state,
                                Zip          = zip,
                                Phone        = phone,
                                CreatedBy    = HttpContext.Current.User == null || string.IsNullOrEmpty(HttpContext.Current.User.Identity.Name)
                                                                          ? "sys"
                                                                          : HttpContext.Current.User.Identity.Name,
                                CreatedDate = DateTime.Now
                            };
                            dbContext.ExtendedUserProfiles.Add(extendedUserProfile);
                            dbContext.SaveChanges();
                        }
                        else
                        {
                            if (user != null)
                            {
                                Update(user.UserName, firstName, lastName, title, hourlyRate, address, city, state, zip, phone);
                            }
                        }
                        return(GetUser(userName, userIsOnline: false));
                    }
                    catch (Exception ex)
                    {
                        createUserStatus = MembershipCreateStatus.UserRejected;
                    }
                }
            }
            return(null);
        }
Esempio n. 2
0
 protected void PopulateExtendedUserProfile()
 {
     if (System.Security.Claims.ClaimsPrincipal.Current != null)
     {
         if (System.Security.Claims.ClaimsPrincipal.Current.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress") != null)
         {
             ExtendedUserProfile       = new ExtendedUserProfile();
             ExtendedUserProfile.Email = System.Security.Claims.ClaimsPrincipal.Current.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress").Value;
             //ExtendedUserProfile.FullName = claimPrincipal.Claims.FirstOrDefault(c => c.Type == "name").Value;
             ExtendedUserProfile.FullName         = System.Security.Claims.ClaimsPrincipal.Current.FindFirst("name").Value;
             ExtendedUserProfile.ObjectIdentifier = System.Security.Claims.ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
         }
     }
 }