Membership Management Complete Starter Kit

Last post 07-09-2008 4:19 AM by hunzonian. 2 replies.

Sort Posts:

  • Membership Management Complete Starter Kit

    07-07-2008, 6:08 PM
    • Member
      94 point Member
    • hunzonian
    • Member since 01-29-2008, 4:40 PM
    • Posts 166

     Note to Admin: Please publish this in appropriate section.

    I have published a membership management starter kit on codeplex that works with the default membership, role and profile provider. I hope it helps some beginners. It is available on CodePlex at  http://www.codeplex.com/AspNetWSAT  under the releases tab.

  • Re: Membership Management Complete Starter Kit

    07-09-2008, 2:38 AM
    • All-Star
      15,207 point All-Star
    • yasserzaid
    • Member since 09-22-2007, 9:10 PM
    • Egypt
    • Posts 2,578

    Hi

    try this example to display All Users data in Gridview

    * ManageUsers.aspx

    <script language="javascript" type="text/javascript">
         //--- For Checkbox in Gridview
    function SelectAll(id)
          {
           var frm = document.forms[0];
                
                for (i=0;i<frm.elements.length;i++)
                {
                    if (frm.elements[i].type =="checkbox")
                    {
               frm.elements[i].checked = document.getElementById(id).checked;
               
                    }
                }
    
            }
        br />
        <strong><span style="font-size: 11pt; color: #0066ff">Users Account Management</span></strong><p>
        </p>
        <b>- The total registered users is:
            <asp:Literal ID="lblTotalUsers" runat="server"></asp:Literal><br />
            <br />
            - The total online users at this moment:
            <asp:Literal ID="lblOnlineUsers" runat="server"></asp:Literal></b>
        <p>
        </p>
        In order to display all users whose name begins with letter click on the link letter:
        <p>
        </p>
        <asp:Repeater ID="rptAlphabetBar" runat="server" OnItemCommand="rptAlphabetBar_ItemCommand">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Container.DataItem %>'
                    Text='<%# Container.DataItem %>'></asp:LinkButton>
                 
            </ItemTemplate>
        </asp:Repeater>
        <p>
        </p>
        Use the below feature to search users by partial username or e-mail:
        <p>
        </p>
        <asp:DropDownList ID="ddlUserSearchTypes" runat="server" Style="position: static">
            <asp:ListItem Selected="true" Text="UserName"></asp:ListItem>
            <asp:ListItem Text="E-mail"></asp:ListItem>
        </asp:DropDownList>
        contains
        <asp:TextBox ID="txtSearchText" runat="server" Style="position: static"></asp:TextBox>
        <asp:Button ID="btnSearch" runat="server" Font-Bold="True" OnClick="btnSearch_Click"
            Style="position: static" Text="Search" BackColor="White" BorderColor="#507CD1"
            BorderStyle="Solid" BorderWidth="1px" Font-Names="Times New Roman"
            Font-Size="10.5pt" ForeColor="#284E98"/>
        <br />
        <br />
        <br />
        <asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="UserName" ForeColor="#333333"
            GridLines="None" OnDataBound="gvUsers_DataBound" OnRowDataBound="gvUsers_RowDataBound" Style="position: static">
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:CheckBox ID="cbxAll" runat="server" Style="position: static" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="cbxId" runat="server" Style="position: static" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="User Name">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("UserName") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="lblUserName" runat="server" Text='<%# Bind("UserName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Email" HeaderText="Email" DataFormatString="<a href=mailto:{0}>{0}</a>" HtmlEncode="False" />
                <asp:TemplateField HeaderText="Created">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("CreationDate") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("CreationDate", "{0:dd/MM/yyyy}") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Last activity">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("LastActivityDate") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("LastActivityDate",  "{0:dd/MM/yyyy}") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="IsApproved" HeaderText="Is Approved" />
                        </Columns>
            <RowStyle BackColor="#EFF3FB" />
            <EmptyDataTemplate>
                No users found.
            </EmptyDataTemplate>
            <EditRowStyle BackColor="#2461BF" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
        <br />
        <br />
        <asp:Button ID="btn_Delete" runat="server" CssClass="SubmitBtn" Font-Bold="True"
            OnClick="btn_Delete_Click" Style="position: static" Text="Delete Selected" BackColor="White" BorderColor="#507CD1"
                                BorderStyle="Solid" BorderWidth="1px" Font-Names="Times New Roman"
                                Font-Size="10.5pt" ForeColor="#284E98"/><br />
        <br />
        <asp:Label ID="lblMsg" runat="server" Font-Bold="True" ForeColor="#FF0000" Style="position: static"
            Width="211px"></asp:Label>

     in Code behind

    private MembershipUserCollection allRegisteredUsers = Membership.GetAllUsers();
        MembershipUserCollection myuser = Membership.GetAllUsers();

        public void RefreshGridview()
        {
            gvUsers.DataSource = Membership.GetAllUsers();
            gvUsers.DataBind();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            btn_Delete.Visible = false;

            if (!IsPostBack)
            {
                //RefreshGridview();

                lblOnlineUsers.Text = Membership.GetNumberOfUsersOnline().ToString();
                lblTotalUsers.Text = allRegisteredUsers.Count.ToString();
                string[] alph = "A;B;C;D;E;F;G;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;All".Split(';');
               
                //-- Bind Reprater control to Alphapitical
                rptAlphabetBar.DataSource = alph;
                rptAlphabetBar.DataBind();
            }
        }

        //-- for Reprater control
        protected void rptAlphabetBar_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            btn_Delete.Visible = true;

            gvUsers.Attributes.Add("SearchByEmail", false.ToString());
            if (e.CommandArgument.ToString().Length == 1)
            {
                gvUsers.Attributes.Add("SearchText", e.CommandArgument.ToString() + "%");
                this.BindAllUsers(false);
            }
            else
            {
                gvUsers.Attributes.Add("SearchText", "");
                this.BindAllUsers(false);
            }
        }

        private void BindAllUsers(bool reloadAllUsers)
        {
            MembershipUserCollection allUsers = null;
            if (reloadAllUsers)
                allUsers = Membership.GetAllUsers();

            string searchText = "";
            if (!string.IsNullOrEmpty(gvUsers.Attributes["SearchText"]))
                searchText = gvUsers.Attributes["SearchText"];
            bool searchByEmail = false;
            if (!string.IsNullOrEmpty(gvUsers.Attributes["SearchByEmail"]))
                searchByEmail = bool.Parse(gvUsers.Attributes["SearchByEmail"]);
            if (searchText.Length > 0)
            {
                if (searchByEmail)
                    allUsers = Membership.FindUsersByEmail(searchText);
                else
                    allUsers = Membership.FindUsersByName(searchText);
            }
            else
            {
                allUsers = allRegisteredUsers;
            }
            gvUsers.DataSource = allUsers;
            gvUsers.DataBind();
        }

        //-- Search button
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            btn_Delete.Visible = true;

            bool searchByEmail = (ddlUserSearchTypes.SelectedValue == "E-mail");
            //gvUsers.Attributes.Add("SearchText", "%" + txtSearchText.Text + "%");
            gvUsers.Attributes.Add("SearchText",  txtSearchText.Text + "%");
            gvUsers.Attributes.Add("SearchByEmail", searchByEmail.ToString());
            BindAllUsers(false);
        }

        //-- Delete button
        protected void btn_Delete_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (GridViewRow row in gvUsers.Rows)
                {
                    CheckBox checkbox = (CheckBox)row.FindControl("cbxId");

                    if (checkbox.Checked == true)
                    {

                        Label lblUserName = (Label)gvUsers.Rows[row.RowIndex].FindControl("lblUserName");

                        bool x = Membership.DeleteUser(lblUserName.Text);

                        if (x == true)
                        {
                            lblMsg.Text = "Selected deleted";
                           
                            RefreshGridview();

                            btn_Delete.Visible = false;

                        }
                        else
                        {
                            lblMsg.Text = "Try again";
                        }

                    }

                }
            }
            catch (Exception ex)
            {
                lblMsg.Text = ex.Message.ToString();
            }
        }

        //-- for Checkbox
        protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if ((e.Row.RowType == DataControlRowType.Header))
            {
                //adding an attribut for onclick event on the check box in the hearder and passing the ClientID of the Select All checkbox
                ((CheckBox)e.Row.FindControl("cbxAll")).Attributes.Add("onclick", "javascript:SelectAll('" + ((CheckBox)e.Row.FindControl("cbxAll")).ClientID + "')");

            }
        }


        protected void gvUsers_DataBound(object sender, EventArgs e)
        {
            if (gvUsers.Rows.Count == 0)
            {
               
                btn_Delete.Visible = false;
            }
            else
            {
                btn_Delete.Visible = true;
            }
        }

    UpdateUser.aspx

    <strong><span style="color: #0066ff">Update User Account:-</span></strong><br />
        </span>
        <br />
        <table id="table1" runat="server" border="1" bordercolor="blue" style="width: 322px;
            position: static" visible="true">
            <tr>
                <td style="width: 203px">
                    <strong>User Name:</strong></td>
                <td>
                    <asp:Label ID="UsernameLabel" runat="server" Font-Bold="True"></asp:Label></td>
            </tr>
            <tr>
                <td style="width: 203px">
                    <strong>Email:</strong></td>
                <td>
                    <asp:TextBox ID="EmailText" runat="server"></asp:TextBox></td>
            </tr>
            <tr>
                <td style="width: 203px">
                    <strong>Password :</strong></td>
                <td>
                    <asp:Label ID="lblPassword" runat="server" Font-Bold="True" Style="position: static"></asp:Label></td>
            </tr>
            <tr>
                <td style="width: 203px">
                    <strong>Comment:</strong></td>
                <td>
                    <asp:TextBox ID="CommentTextBox" runat="server" TextMode="multiline"></asp:TextBox></td>
            </tr>
            <tr>
                <td style="width: 203px">
                    <asp:CheckBox ID="IsApprovedCheck" runat="server" Font-Bold="True" Text="Is Approved"
                        Width="105px" />
                </td>
                <td>
                    <asp:CheckBox ID="IsLockedOutCheck" runat="Server" Font-Bold="True" Text="Locked Out" />
                    <br />
                </td>
            </tr>
            <tr>
                <td colspan="2" style="height: 28px; text-align: center">
                    <asp:Button ID="btn_Update" runat="server" CssClass="SubmitBtn" Font-Bold="True"
                        OnClick="Button1_Click" Text="Update" Width="106px" /></td>
            </tr>
        </table>

     and in code behind

    MembershipUserCollection myuser = Membership.GetAllUsers();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["Id"] != null)
            {
                if (!IsPostBack)
                {
                    string userName = Request.QueryString["Id"].ToString();

                    MembershipUser Current = myuser[userName];
                   
                    UsernameLabel.Text = Current.UserName;
                    EmailText.Text = Current.Email;
                    CommentTextBox.Text = Current.Comment;
                    IsApprovedCheck.Checked = Current.IsApproved;
                    IsLockedOutCheck.Checked = Current.IsLockedOut;
                    lblPassword.Text = Current.GetPassword();
                }
            }

        }

        //-- Update button
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string userName = Request.QueryString["Id"].ToString();

                MembershipUser Current = myuser[userName];
                Current.Email = EmailText.Text;
                Current.Comment = CommentTextBox.Text;
                Current.IsApproved = IsApprovedCheck.Checked;

                Membership.UpdateUser(Current);
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            finally
            {
                Response.Redirect("~/Admin/ManageUsers.aspx");
            }
        }

    Good Luck

    Yasser Zaid
    My Blog [http://yasserzaid.wordpress.com/]
  • Re: Membership Management Complete Starter Kit

    07-09-2008, 4:19 AM
    • Member
      94 point Member
    • hunzonian
    • Member since 01-29-2008, 4:40 PM
    • Posts 166

     Zaid, I think you've answered the wrong post. This one is an announcement and did not require an answer.

Page 1 of 1 (3 items)