Agregar membership a sitio web


Para agregar membership a un sitio web primero se debe agregar membership a la base de datos.

La configuración del membership se debe realizar en el web.config del sitio Web. Es necesario colocar la cadena de conexión, agregar los tags de membership y roleManager, la configuración de authentication y authorization y por último el formulario de autenticación con el control de login.

1. Cadena de conexión: Se debe agregar la cadena de conexión dentro de la lista de connectionStrings del web.config.

<connectionStrings>
    <add name="MyConnectionString" connectionString="data source=.\SQLEXPRESS;integrated security=SSPI;initial catalog=MyDB" providerName="System.Data.SqlClient"/>
</connectionStrings>

2. Tags del membership y roleManager: A continuación se agregan los tags de membership y roleManager con los parametros de configuración que se desean utilizar en la aplicación Web. Es posible configurar varias opciones según deseemos para nuestro sitio web. Estos tags se deben ubicar dentro de la sección <system.web>.

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="30">
  <providers>
    <clear/>
    <add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MyConnectionString" applicationName="MyWeb" enablePasswordRetrieval="true" enablePasswordReset="true" passwordFormat="Clear" requiresQuestionAndAnswer="false" passwordStrengthRegularExpression="" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="100" passwordAttemptWindow="30"/>
  </providers>
</membership>

<roleManager defaultProvider="SqlProvider" enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
  <providers>
    <clear/>
    <add name="SqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="MyConnectionString" applicationName="MyWeb"/>
  </providers>
</roleManager>
Los detalles de todas las opciones para configurar en el membership se encuentran en:
http://msdn.microsoft.com/es-es/library/system.web.security.membership_properties.aspx
Y los de configuración de roleManager en:
http://msdn.microsoft.com/es-es/library/ms164660.aspx


3. Agregar las secciones de authentication y authorization: Luego se agregan las secciones de authentication y authorization dentro de la sección de <system.web>. Dentro de authentication especificamos que el tipo de autenticacion va a ser por medio de un formulario y especificamos la ruta de este:

<authentication mode="Forms">
  <forms loginUrl="auth.aspx" timeout="30"/>
</authentication>
Y la sección de autorización nos sirve para especificar que carpetas son las que requieren de autenticación y cuales no.

Si queremos que toda nuestra aplicación sea visible para cualquier usuario así no esté autenticado usamos:

<authorization>
  <allow users="*"/>
</authorization>

Si queremos que toda nuestra aplicación requiera de usuarios autenticados usamos:

<authorization> 
  <deny users="?" />
</authorization>
Si queremos que unas carpetas sean solo para usuarios autenticados podemos colocar un web.config dentro de la carpeta con las opciones de configuración o especificar el path y colocar las opciones:

<location path="securepath">
  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
</location> 
Para profundizar y conocer todas las opciones disponibles se puede consultar:
http://msdn.microsoft.com/es-es/library/wce3kxhd.aspx


4. Agregar el formulario de autenticación: Se debe agregar el formulario y a este agregarle el control de login. Importante que este formulario si tenga permisos para ser visible por todos los usuarios. El control de login se configura dentro del ASPX:

<asp:Login ID="Login1" runat="server" DestinationPageUrl="~/securepath/Default.aspx"
    FailureText="Usuario o contraseña no válidos. Intente de nuevo"
    LoginButtonText="Ingresar" PasswordLabelText="Contraseña:"
    PasswordRequiredErrorMessage="La contraseña es obligatoria."
    RememberMeText="Recordarme la próxima vez." TitleText="Autenticación"
    UserNameLabelText="Usuario:"
    UserNameRequiredErrorMessage="El usuario es obligatorio.">
</asp:Login>


Más detalles del control de login se pueden encontrar en:
http://msdn.microsoft.com/es-es/library/ms178331.aspx

Ya con este procedimiento se logra tener la autenticación dentro de cualquier sitio web con asp.net 2.0 o superior.

Comentarios

  1. Muy bueno Fabio, excelente como esta explicado. Me sirvió de mucho tu aporte. Gracias!!

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Instalar programa como servicio Windows

Habilitar Ping Firewall Windows 2008

Ejecutar programa como servicio windows server 2008