none
membership, como cambiar el nombre de usuario y contraseña sin usar

    Question

  • hola me encuentro desarrollando un pequeño sitio en asp.net y tengo que realizar una seccion donde el administrador pueda modificar el nombre de usuario y cambiar la contraseña de algun usuario que el administrador elija. Gracis por sus colaboraciones!
    Friday, December 10, 2010 12:55 PM

Answers

  • hola


    revisa donde dice ChangePassword



    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Saturday, December 11, 2010 4:03 AM
  • Saludo Ermis, el formulatrio que esta creando ponlo en una carpeta llamada Admin por ejemplo, luego abre la configuracion de AspNet del explorador de soluciones para que le agregue permiso a los administradores y les quite permiso a los usuarios anonimos; Ver Imagen, luego dentro de la carpeta modifica tu formulario que contenga un escenario master-detail y en una de la seccion del formulario agregarle una grilla que contengan todos los usuarios de la aplicacion y en la otra seccion los destalle del usuario seleccionado de la grilla con los campos que quiere modificar: Pass, username, entre otros.

    Luego utiliza este ejemplo como guia, recuerda que debe agregar un DataSource por cada control y deben estar enlazado a la base de datos que contenga la membresia, este es el ejemplo copleto

    <%@ Page language="C#" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    
     //cuando selecciones un usuario de la grilla lo enlaza al destalle y por ultimo los refresca 
     void EmployeesGridView_OnSelectedIndexChanged(object sender, EventArgs e)
     {
      EmployeeDetailsObjectDataSource.SelectParameters["EmployeeID"].DefaultValue = 
       EmployeesGridView.SelectedDataKey.Value.ToString();
      EmployeesDetailsView.DataBind();
     }
    
    
     // Cuando actualice la contraseña o el nombre de usuario refresco la grilla
     void EmployeesDetailsView_ItemUpdated(Object sender, DetailsViewUpdatedEventArgs e)
     {
      EmployeesGridView.DataBind();
     }
    
     void EmployeesDetailsView_ItemInserted(Object sender, DetailsViewInsertedEventArgs e)
     {
      EmployeesGridView.DataBind(); 
     }
    
    
     void EmployeesDetailsView_ItemDeleted(Object sender, DetailsViewDeletedEventArgs e)
     {
      EmployeesGridView.DataBind();
     }
    
     void EmployeeDetailsObjectDataSource_OnInserted(object sender, ObjectDataSourceStatusEventArgs e)
     {
      EmployeeDetailsObjectDataSource.SelectParameters["EmployeeID"].DefaultValue = 
       e.ReturnValue.ToString();
      EmployeesDetailsView.DataBind();
     }
    
     void EmployeeDetailsObjectDataSource_OnUpdated(object sender, ObjectDataSourceStatusEventArgs e)
     {
      if ((int)e.ReturnValue == 0)
       Msg.Text = "Employee was not updated. Please try again.";
     }
    
     void EmployeeDetailsObjectDataSource_OnDeleted(object sender, ObjectDataSourceStatusEventArgs e)
     {
      if ((int)e.ReturnValue == 0)
       Msg.Text = "Employee was not deleted. Please try again.";
     }
    
     void Page_Load()
     {
      Msg.Text = "";
     }
    
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml" >
     <head runat="server">
      <title>ObjectDataSource Example</title>
    </head>
    <body>
      <form id="form1" runat="server">
    
       <h3>ObjectDataSource Example</h3>
       <asp:Label id="Msg" runat="server" ForeColor="Red" />
    
       <asp:ObjectDataSource 
        ID="EmployeesObjectDataSource" 
        runat="server" 
        TypeName="Samples.AspNet.ObjectDataSource.NorthwindData" 
        SortParameterName="SortColumns"
        EnablePaging="true"
        SelectCountMethod="SelectCount"
        StartRowIndexParameterName="StartRecord"
        MaximumRowsParameterName="MaxRecords" 
        SelectMethod="GetAllEmployees" >
       </asp:ObjectDataSource>
    
    
       <asp:ObjectDataSource 
        ID="EmployeeDetailsObjectDataSource" 
        runat="server" 
        TypeName="Samples.AspNet.ObjectDataSource.NorthwindData" 
        ConflictDetection="CompareAllValues"
        OldValuesParameterFormatString="original_{0}"
        SelectMethod="GetEmployee"
        InsertMethod="InsertEmployee"
        UpdateMethod="UpdateEmployee"
        DeleteMethod="DeleteEmployee"
        OnInserted="EmployeeDetailsObjectDataSource_OnInserted"
        OnUpdated="EmployeeDetailsObjectDataSource_OnUpdated"
        OnDeleted="EmployeeDetailsObjectDataSource_OnDeleted">
        <SelectParameters>
         <asp:Parameter Name="EmployeeID" Type="Int32" /> 
        </SelectParameters>
       </asp:ObjectDataSource>
    
    
       <table cellspacing="10">
        <tr>
         <td valign="top">
          <asp:GridView ID="EmployeesGridView" 
           DataSourceID="EmployeesObjectDataSource" 
           AutoGenerateColumns="false"
           AllowSorting="true"
           AllowPaging="true"
           PageSize="5"
           DataKeyNames="EmployeeID" 
           OnSelectedIndexChanged="EmployeesGridView_OnSelectedIndexChanged"
           RunAt="server">
    
           <HeaderStyle backcolor="lightblue" forecolor="black"/>
    
           <Columns>        
            <asp:ButtonField Text="Details..."
                     HeaderText="Show Details"
                     CommandName="Select"/> 
    
            <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" SortExpression="EmployeeID" />
            <asp:BoundField DataField="FirstName" HeaderText="First Name" SortExpression="FirstName" />
            <asp:BoundField DataField="LastName"  HeaderText="Last Name" SortExpression="LastName, FirstName" />          
           </Columns>        
          </asp:GridView>      
         </td>
         <td valign="top">        
          <asp:DetailsView ID="EmployeesDetailsView"
           DataSourceID="EmployeeDetailsObjectDataSource"
           AutoGenerateRows="false"
           EmptyDataText="No records."   
           DataKeyNames="EmployeeID"   
           Gridlines="Both" 
           AutoGenerateInsertButton="true"
           AutoGenerateEditButton="true"
           AutoGenerateDeleteButton="true"
           OnItemInserted="EmployeesDetailsView_ItemInserted"
           OnItemUpdated="EmployeesDetailsView_ItemUpdated"
           OnItemDeleted="EmployeesDetailsView_ItemDeleted" 
           RunAt="server">
    
           <HeaderStyle backcolor="Navy" forecolor="White"/>
    
           <RowStyle backcolor="White"/>
    
           <AlternatingRowStyle backcolor="LightGray"/>
    
           <EditRowStyle backcolor="LightCyan"/>
    
           <Fields>         
            <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/>          
            <asp:BoundField DataField="FirstName" HeaderText="First Name"/>
            <asp:BoundField DataField="LastName"  HeaderText="Last Name"/>          
            <asp:BoundField DataField="Address"  HeaderText="Address"/>          
            <asp:BoundField DataField="City"    HeaderText="City"/>            
            <asp:BoundField DataField="Region"   HeaderText="Region"/>
            <asp:BoundField DataField="PostalCode" HeaderText="Postal Code"/>          
           </Fields>          
          </asp:DetailsView>
         </td>        
        </tr>      
       </table>
      </form>
     </body>
    </html>

    Si la informacion te fue de Utilidad marcala como util

    Angel R. Jimenez G.
    Software Development
    Santo Domingo Republica Dominicana
    Monday, December 27, 2010 10:12 PM

All replies

  • Como se trata de un administrador puede crear un forde a la que solo tenga acceso una determinada persona o Role y coloca aqui un formulario con los campos que necesite modificar, por ejemplo la contraseña, y este formulario va a estar vinculado a la base de dato de membresia.
    Santo Domingo Republica Dominicana
    Friday, December 10, 2010 2:02 PM
  • Hola,

     

    Si estas usando el membership puedes utilizar el control para cambiar el password que asp.net ya trae por defecto. Eso si, recuerda que este control requiere que conozcas la contraseña anterior del usuario.

    Si quieres realizar el cambio sin saberla debes escribir un metodo personalizado.

     

    Saludos,



    Jason Ulloa
    Mi Blog
    Friday, December 10, 2010 10:59 PM
  • hola


    revisa donde dice ChangePassword



    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Saturday, December 11, 2010 4:03 AM
  • Gracias por sus respuestas y disculpen la demora en contestar pero aun no he podido resolver mi problema, no se si me explique bien, pero muchas gracias Leandro en efecto utillizo memberships, pero no quiero utilizar el control change password, ya que estoy creando un formulario en el cual solo el administrador pueda realizar dicha accion. pero para hacerlo necesito poder escoger el usuario a modificar y eso es lo que me esta dando problemas, como puedo hacer esto.

    1. escoger el usuario que quiero modificar

    2. modificar la contraseña del usuario y el nombre de usuario

    la contraseña se que puedo hacerlo asi Usuario.ChangePassword(Me.TxtContraseñaVieja.Text.ToString(), Me.TxtContraseña.Text.ToString()).

    Pero mi gran problema es como escoger el usuario a modificar y insertarlo en la variable Usuario tipo membership para asi modificar la contraseña, luego modificar el nombre de usuario.


    Monday, December 27, 2010 8:28 PM
  • Hola,

     

    Y porque no utilizas el mismo membership para llenar la lista de usuarios? Por ejemplo, agregas un dropdownlist y le pones en el codigo

    ddlusers.DataSource = Membership.GetAllUsers();
    ddlusers.DataBind();

     

    Y luego nada mas obtienes el nombre de usuario de esa lista.

     

    Saludos,



    Jason Ulloa
    Mi Blog
    Monday, December 27, 2010 8:52 PM
  • Saludo Ermis, el formulatrio que esta creando ponlo en una carpeta llamada Admin por ejemplo, luego abre la configuracion de AspNet del explorador de soluciones para que le agregue permiso a los administradores y les quite permiso a los usuarios anonimos; Ver Imagen, luego dentro de la carpeta modifica tu formulario que contenga un escenario master-detail y en una de la seccion del formulario agregarle una grilla que contengan todos los usuarios de la aplicacion y en la otra seccion los destalle del usuario seleccionado de la grilla con los campos que quiere modificar: Pass, username, entre otros.

    Luego utiliza este ejemplo como guia, recuerda que debe agregar un DataSource por cada control y deben estar enlazado a la base de datos que contenga la membresia, este es el ejemplo copleto

    <%@ Page language="C#" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    
     //cuando selecciones un usuario de la grilla lo enlaza al destalle y por ultimo los refresca 
     void EmployeesGridView_OnSelectedIndexChanged(object sender, EventArgs e)
     {
      EmployeeDetailsObjectDataSource.SelectParameters["EmployeeID"].DefaultValue = 
       EmployeesGridView.SelectedDataKey.Value.ToString();
      EmployeesDetailsView.DataBind();
     }
    
    
     // Cuando actualice la contraseña o el nombre de usuario refresco la grilla
     void EmployeesDetailsView_ItemUpdated(Object sender, DetailsViewUpdatedEventArgs e)
     {
      EmployeesGridView.DataBind();
     }
    
     void EmployeesDetailsView_ItemInserted(Object sender, DetailsViewInsertedEventArgs e)
     {
      EmployeesGridView.DataBind(); 
     }
    
    
     void EmployeesDetailsView_ItemDeleted(Object sender, DetailsViewDeletedEventArgs e)
     {
      EmployeesGridView.DataBind();
     }
    
     void EmployeeDetailsObjectDataSource_OnInserted(object sender, ObjectDataSourceStatusEventArgs e)
     {
      EmployeeDetailsObjectDataSource.SelectParameters["EmployeeID"].DefaultValue = 
       e.ReturnValue.ToString();
      EmployeesDetailsView.DataBind();
     }
    
     void EmployeeDetailsObjectDataSource_OnUpdated(object sender, ObjectDataSourceStatusEventArgs e)
     {
      if ((int)e.ReturnValue == 0)
       Msg.Text = "Employee was not updated. Please try again.";
     }
    
     void EmployeeDetailsObjectDataSource_OnDeleted(object sender, ObjectDataSourceStatusEventArgs e)
     {
      if ((int)e.ReturnValue == 0)
       Msg.Text = "Employee was not deleted. Please try again.";
     }
    
     void Page_Load()
     {
      Msg.Text = "";
     }
    
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml" >
     <head runat="server">
      <title>ObjectDataSource Example</title>
    </head>
    <body>
      <form id="form1" runat="server">
    
       <h3>ObjectDataSource Example</h3>
       <asp:Label id="Msg" runat="server" ForeColor="Red" />
    
       <asp:ObjectDataSource 
        ID="EmployeesObjectDataSource" 
        runat="server" 
        TypeName="Samples.AspNet.ObjectDataSource.NorthwindData" 
        SortParameterName="SortColumns"
        EnablePaging="true"
        SelectCountMethod="SelectCount"
        StartRowIndexParameterName="StartRecord"
        MaximumRowsParameterName="MaxRecords" 
        SelectMethod="GetAllEmployees" >
       </asp:ObjectDataSource>
    
    
       <asp:ObjectDataSource 
        ID="EmployeeDetailsObjectDataSource" 
        runat="server" 
        TypeName="Samples.AspNet.ObjectDataSource.NorthwindData" 
        ConflictDetection="CompareAllValues"
        OldValuesParameterFormatString="original_{0}"
        SelectMethod="GetEmployee"
        InsertMethod="InsertEmployee"
        UpdateMethod="UpdateEmployee"
        DeleteMethod="DeleteEmployee"
        OnInserted="EmployeeDetailsObjectDataSource_OnInserted"
        OnUpdated="EmployeeDetailsObjectDataSource_OnUpdated"
        OnDeleted="EmployeeDetailsObjectDataSource_OnDeleted">
        <SelectParameters>
         <asp:Parameter Name="EmployeeID" Type="Int32" /> 
        </SelectParameters>
       </asp:ObjectDataSource>
    
    
       <table cellspacing="10">
        <tr>
         <td valign="top">
          <asp:GridView ID="EmployeesGridView" 
           DataSourceID="EmployeesObjectDataSource" 
           AutoGenerateColumns="false"
           AllowSorting="true"
           AllowPaging="true"
           PageSize="5"
           DataKeyNames="EmployeeID" 
           OnSelectedIndexChanged="EmployeesGridView_OnSelectedIndexChanged"
           RunAt="server">
    
           <HeaderStyle backcolor="lightblue" forecolor="black"/>
    
           <Columns>        
            <asp:ButtonField Text="Details..."
                     HeaderText="Show Details"
                     CommandName="Select"/> 
    
            <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" SortExpression="EmployeeID" />
            <asp:BoundField DataField="FirstName" HeaderText="First Name" SortExpression="FirstName" />
            <asp:BoundField DataField="LastName"  HeaderText="Last Name" SortExpression="LastName, FirstName" />          
           </Columns>        
          </asp:GridView>      
         </td>
         <td valign="top">        
          <asp:DetailsView ID="EmployeesDetailsView"
           DataSourceID="EmployeeDetailsObjectDataSource"
           AutoGenerateRows="false"
           EmptyDataText="No records."   
           DataKeyNames="EmployeeID"   
           Gridlines="Both" 
           AutoGenerateInsertButton="true"
           AutoGenerateEditButton="true"
           AutoGenerateDeleteButton="true"
           OnItemInserted="EmployeesDetailsView_ItemInserted"
           OnItemUpdated="EmployeesDetailsView_ItemUpdated"
           OnItemDeleted="EmployeesDetailsView_ItemDeleted" 
           RunAt="server">
    
           <HeaderStyle backcolor="Navy" forecolor="White"/>
    
           <RowStyle backcolor="White"/>
    
           <AlternatingRowStyle backcolor="LightGray"/>
    
           <EditRowStyle backcolor="LightCyan"/>
    
           <Fields>         
            <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/>          
            <asp:BoundField DataField="FirstName" HeaderText="First Name"/>
            <asp:BoundField DataField="LastName"  HeaderText="Last Name"/>          
            <asp:BoundField DataField="Address"  HeaderText="Address"/>          
            <asp:BoundField DataField="City"    HeaderText="City"/>            
            <asp:BoundField DataField="Region"   HeaderText="Region"/>
            <asp:BoundField DataField="PostalCode" HeaderText="Postal Code"/>          
           </Fields>          
          </asp:DetailsView>
         </td>        
        </tr>      
       </table>
      </form>
     </body>
    </html>

    Si la informacion te fue de Utilidad marcala como util

    Angel R. Jimenez G.
    Software Development
    Santo Domingo Republica Dominicana
    Monday, December 27, 2010 10:12 PM