Agregar nuevos campos a membership

Normalmente en nuestras aplicaciones ASP.NET que requieren de autenticación usamos membership, pero ocurre el problema de que por defecto membership no contiene las opciones para colocar campos al usuario como lo son el nombre, apellido, ciudad y demás que normalmente necesitamos para un sitio Web. Pero esto tiene solución.

Luego de completar los procedimientos de agregar membership a la base de datos y agregar membership al sitio Web, podemos incluir dentro de la sección <system.web> de nuestro web.config lo siguiente con el fin de poder tener disponibles nuevos campos para el registro de nuestros usuarios:

<profile defaultProvider="SqlProvider">
  <providers>
    <clear/>
      <add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="MyConnectionString" applicationName="MyWeb"/>
    </providers>
    <properties>
      <add name="Names"/>
      <add name="Country"/>
    </properties>
</profile>

En el caso de este ejemplo hemos agregado un campo nuevo para los nombres y otro para el país.


En nuestro control de registro (asp:CreateUserWizard), debemos agregarle los controles que nos van a permitir obtener los datos del usuario. Para el presente ejemplo se crearon 2 controles text box, uno con el nombre de "Names" y el otro con el nombre de "Country", y luego de esto es necesario agregar el evento "oncreateduser".

Si por ejemplo nuestro control de creación de usuarios se llama logCreate el evento quedaría de la siguiente manera:

    protected void logCreate_CreatedUser(object sender, EventArgs e)
    {
        ProfileCommon userProfile = (ProfileCommon)ProfileCommon.Create(logCreate.UserName, true);

        TextBox userNameTextBox = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Names");
        TextBox CountryTextBox = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Country");

        userProfile.Names = userNameTextBox.Text;
        userProfile.Country = CountryTextBox.Text;

        userProfile.Save();
    }

Y listo.

Comentarios

  1. Buenos dias,

    Actualmente estoy realizando mi primera aplicación y he utilizado "membership" para el control de sesiones pero te querría hacer algunas preguntas más..si no te importa nos podíamos poner en contacto vía e-mail. El mio es: cifuentesytortosa@gmail.com

    ResponderEliminar
  2. hola que tal disculpa lo que pasa es que me marca error cuando pongo el codigo que proporcionaste y me aparece que profile no lo puedo poner espero me puedas ayudar de antemano gracias

    ResponderEliminar
  3. zirba3220 pega primero el codigo en el web.config compilalo y luego te reconocera profile porque tiene que estar la etiqueta profile en web config primero

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Instalar programa como servicio Windows

Ejecutar programa como servicio windows server 2008

Habilitar Ping Firewall Windows 2008