protected override void OnLoad(EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                SqlServer server = SqlServer.CurrentServer;
                server.Connect();

                SqlDatabase database = SqlDatabase.CurrentDatabase(server);

                SqlUser user = null;
                if (Request["User"] != null)
                {
                    user = database.Users[Request["User"]];
                }
                if (user == null)
                {
                    Response.Redirect("DatabaseUsers.aspx");
                }

                UsernameLabel.Text = user.Name.ToUpper();
                LoginLabel.Text    = user.Login;

                SqlDatabaseRoleCollection dbRoles = database.DatabaseRoles;

                Roles.DataSource = dbRoles;
                Roles.DataBind();

                foreach (string roleName in user.ListMembers())
                {
                    ListItem roleItem = Roles.Items.FindByValue(roleName);
                    if (roleItem != null)
                    {
                        roleItem.Selected = true;
                    }
                }

                server.Disconnect();
            }

            base.OnLoad(e);
        }
        protected void Save_Click(object sender, EventArgs e)
        {
            SqlServer server = SqlServer.CurrentServer;

            server.Connect();

            try
            {
                SqlDatabase database = SqlDatabase.CurrentDatabase(server);

                SqlDatabaseRoleCollection dbRoles = database.DatabaseRoles;
                SqlUser user = database.Users[Request["user"]];

                foreach (ListItem item in Roles.Items)
                {
                    if (!user.IsMember(item.Value) && item.Selected)
                    {
                        dbRoles[item.Value].AddMember(Request["user"]);
                    }
                    else if (user.IsMember(item.Value) && !item.Selected)
                    {
                        dbRoles[item.Value].DropMember(Request["user"]);
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorMessage.Text = ex.Message;
                return;
            }
            finally
            {
                server.Disconnect();
            }

            Response.Redirect("DatabaseUsers.aspx?database=" + Request["database"]);
        }