/// <summary>
 /// Check for and handle the case of a new database - if so, seed the database
 /// with the required roles for this application and make the currently logged-in
 /// user as the administrator.
 /// NOTE: Possible security hole when rebuilding a web site with a blank database -
 /// anyone could register as the admin.   Double check the user list when rebuilding
 /// a blank user database.
 /// </summary>
 private void ValidateRoles(System.Web.Security.RoleProvider rolesProvider, string userName)
 {
     if (!rolesProvider.RoleExists("Administrators"))
     {
         rolesProvider.CreateRole("Administrators");
         rolesProvider.CreateRole("RouteManagers");
         rolesProvider.CreateRole("Vehicles");
         if (!rolesProvider.GetRolesForUser(userName).Contains("Administrators"))
         {
             rolesProvider.AddUsersToRoles(new[] { userName }, new[] { "Administrators", "RouteManagers", "Vehicles" });
         }
     }
 }
Пример #2
0
        void btnComplete_Click(object sender, EventArgs e)
        {
            if (txtEmail.Text.ToLower() != txtConfirmEmail.Text.ToLower())
            {
                lblMessage2.Text = "Email Address' do not match";
            }
            else if (txtPassword.Text != txtConfirmPassword.Text)
            {
                lblMessage2.Text = "Passwords to not match";
            }
            else
            {
                String FirstName = txtFirstName.Text;
                String LastName  = txtLastName.Text;
                String UserName  = lblUserName.Text;
                String Email     = txtEmail.Text;
                String Password  = txtConfirmPassword.Text;
                System.Web.Security.MembershipCreateStatus CreationStatus    = new System.Web.Security.MembershipCreateStatus();
                System.Web.Security.MembershipUser         NewMembershipUser = System.Web.Security.Membership.CreateUser(UserName, Password, Email, "First Name", FirstName, true, out CreationStatus);

                if (NewMembershipUser == null)
                {
                    lblMessage2.Text = CreationStatus.ToString();
                }
                else
                {
                    System.Web.HttpContext.Current.Profile.Initialize(UserName, true);
                    System.Web.HttpContext.Current.Profile.Save();

                    Avenue.Heights.AvenueHeightsProfile newProfile = (Avenue.Heights.AvenueHeightsProfile)Avenue.Heights.AvenueHeightsProfile.GetProfile(UserName);
                    newProfile.UserID = 0;
                    newProfile.WorkflowIterationID = 0;
                    newProfile.WorkflowTaskID      = 0;

                    System.Web.Security.RoleProvider aRoleProvider = System.Web.Security.Roles.Providers["AvenueHeightsRoleProvider"];
                    String[] User = { UserName };
                    String[] Role = { "Member" };
                    aRoleProvider.AddUsersToRoles(User, Role);

                    aRoleProvider = System.Web.Security.Roles.Providers["AvenueWorkflowRoleProvider"];
                    aRoleProvider.AddUsersToRoles(User, Role);

                    Avenue.Workflow.Access.User newUser = new Avenue.Workflow.Access.User();
                    newUser.UserFirstName        = FirstName;
                    newUser.UserLastName         = LastName;
                    newUser.UserName             = UserName;
                    newUser.UserEmail            = Email;
                    newUser.UserThemeID          = new Avenue.Workflow.Access.Theme(1);
                    newUser.UserAspNetMembership = (Guid)NewMembershipUser.ProviderUserKey;
                    newUser.Insert();

                    lblMessage.Text = "Registration Complete";

                    newProfile.UserID = newUser.UserID;
                    newProfile.Save();

                    pnlLogIn.Visible    = true;
                    pnlRegister.Visible = false;
                }
            }
        }