Manejando Usuarios Parte II

Hola que tal, bueno siguiendo con el tema de los proveedores de asp.net quisiera mostrar como hacer para actualizar roles al determinado usuario.

Vamos a crear en una nuevo pagina, el siguiente aspecto.

rol3

Basicamente lo que vamos a hacer es que dependiendo del usuario que seleccione en este formulario me carge algunos datos basicos de dicho usuario y ademas poder asignarle un rol si este no tiene un rol.

Este es el codigo que utilize para manejar esta parte.

   1: string userName = "";
   2:  
   3:     protected void Page_Load(object sender, EventArgs e)
   4:     {
   5:         // retener el username con un querystring
   6:         userName = this.Request.QueryString["UserName"];
   7:               
   8:  
   9:         if (!this.IsPostBack)
  10:         {
  11:             // mostrar los detalles del usuario
  12:             MembershipUser user = Membership.GetUser(userName);
  13:             lblUserName.Text = user.UserName;
  14:             lnkEmail.Text = user.Email;
  15:             lnkEmail.NavigateUrl = "mailto:" + user.Email;
  16:             lblRegistered.Text = user.CreationDate.ToString("f");
  17:             lblLastLogin.Text = user.LastLoginDate.ToString("f");
  18:             lblLastActivity.Text = user.LastActivityDate.ToString("f");
  19:             chkOnlineNow.Checked = user.IsOnline;
  20:             chkApproved.Checked = user.IsApproved;
  21:             chkLockedOut.Checked = user.IsLockedOut;
  22:             chkLockedOut.Enabled = user.IsLockedOut;
  23:  
  24:             BindRoles();
  25:         }
  26:     }
  27:  
  28:     private void BindRoles()
  29:     {
  30:         // Llenar el CheckBoxList con todas las funciones disponibles y, a continuación, seleccione 
  31:          // A los que pertenece el usuario
  32:         chklRoles.DataSource = Roles.GetAllRoles();
  33:         chklRoles.DataBind();
  34:         foreach (string role in Roles.GetRolesForUser(userName))
  35:             chklRoles.Items.FindByText(role).Selected = true;
  36:     }
  37:  
  38:     protected void btnCreateRole_Click(object sender, EventArgs e)
  39:     {
  40:         if (!Roles.RoleExists(txtNewRole.Text.Trim()))
  41:         {
  42:             Roles.CreateRole(txtNewRole.Text.Trim());
  43:             BindRoles();
  44:         }
  45:     }
  46:  
  47:     protected void btnUpdateRoles_Click(object sender, EventArgs e)
  48:     {
  49:         // actualizar las funciones con el usuario
  50:         string[] currRoles = Roles.GetRolesForUser(userName);
  51:         if (currRoles.Length > 0)
  52:             Roles.RemoveUserFromRoles(userName, currRoles);
  53:         
  54:         List<string> newRoles = new List<string>();
  55:         foreach (ListItem item in chklRoles.Items)
  56:         {
  57:             if (item.Selected)
  58:                 newRoles.Add(item.Text);
  59:         }
  60:         Roles.AddUserToRoles(userName, newRoles.ToArray());
  61:  
  62:         lblRolesFeedbackOK.Visible = true;
  63:     }
  64:  
  65:     protected void chkApproved_CheckedChanged(object sender, EventArgs e)
  66:     {
  67:         MembershipUser user = Membership.GetUser(userName);
  68:         user.IsApproved = chkApproved.Checked;
  69:         Membership.UpdateUser(user);
  70:     }
  71:  
  72:     protected void chkLockedOut_CheckedChanged(object sender, EventArgs e)
  73:     {
  74:         if (!chkLockedOut.Checked)
  75:         {
  76:             MembershipUser user = Membership.GetUser(userName);
  77:             user.UnlockUser();
  78:             chkLockedOut.Enabled = false;
  79:         }
  80:     }

Y una pequena imagen para mostrar el funcionamiento.

rol4

Codigo

Saludos

Romny

Publicado por

Romny Duarte

Ingeniero de sistemas con experiencia en desarrollo web y móvil, geek, amante de la lectura y de la tecnología.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *