post icon

Autenticar con el método de formularios en ASP.Net

Con la tecnología ofrecida por ASP.Net tenemos varios modos de autenticación disponibles para nuestros sitios que creamos, uno de los más sencillos de administrar y programar es la autenticación del tipo FORM.

Con un par de pasos aprenderemos a configurarlos bien y otorgar los permisos necesarios. Vale recordar que éste sistema es sólo recomendado cuando estamos seguros que nuestra aplicación no manejará un volumen alto de usuarios (en promedio unos 10~20) si no fuese así deberiamos optar por otro sistema.

En el fichero web.config de nuestro sitio debemos agregar un par de bloques. Lo primero que debemos hacer es habilitar el sistema de autenticación por forms así:

<configuration>
  <system.web>
    <authentication mode="Forms">
      <forms name="AuthDev" loginUrl="login.aspx"
             protection="All" timeout="20" path="/">
        <credentials passwordFormat="Clear">
          <user name="admin" password="admin"/>
        </credentials>
      </forms>
    </authentication>
  </system.web>
<configuration>

Con éstas líneas hemos habilitado el usuario admin, y la cookie que se utilizará para controlar el login, es conveniente cambiarle el nombre cuando usamos más de una web en el mismo servidor para no compartir los login (a no ser que eso sea lo que busquemos explicitamente). El timeout por omisión con éste sistema es de 30 minutos.

Hasta este punto hemos logrado configurar usuarios de autenticación, pero aún si alguien ingresa la URL directamente podría utilizar la aplicación, para ello denegaremos el ingreso de usuarios anonimos del siguiente modo

<configuration>
  <system.web>
    <authorization>
      <allow users="admin"/>
      <deny users="?"/>
    </authorization>
  </system.web>
</configuration>

En la página de Login quedará por cuenta de ustedes crear 2 cajas de texto, 1 checkbox y 1 botón. La primer caja será para el usuario y la otra para el Password (deben seter la propiedad Password=true), el check dirá recordar login? y en el botón programaremos lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
if (IsValid)
{
	if (FormsAuthentication.Authenticate(txtUsuario.Text, txtPassword.Text))
	{
		System.Web.Security.FormsAuthentication.RedirectFromLoginPage(txtUsuario.Text, chkRecordar.Checked);
		Response.Redirect("~/MiPagina.aspx"); // si no colocamos esto, nos redireccionará al Default.aspx
	}
	else
	{
		lblMensaje.Text = "Error de autenticacion";
		lblMensaje.Visible = true;
	}
}

Comentarios desde Facebook:

  1. avatar
    alejandrp MEXICO Mozilla Firefox Windows
    4 agosto 2014 at 13:39 #

    para agregar a otro usuario que me redireccione a otra pagina???

  2. avatar
    AntoValls ECUADOR Mozilla Firefox Windows
    21 noviembre 2010 at 23:05 #

    Gracias por el tuto, pero tengo un problema ya que al cargar la pagina me envia directo a la pagina de login y los estilos y el javascript que tengo aplicado se pierde y solo queda el formulario de login.
    A puedo resolver este problema, gracias.

    • avatar
      GeekZero PARAGUAY Google Chrome Windows
      22 noviembre 2010 at 06:49 #
      1
      2
      3
      4
      5
      6
      7
      8
      
      <location path="Style">
          <system.web>
            <authorization>
              <allow users="*"/>
              <allow users="?"/>
            </authorization>
          </system.web>
        </location>
      • avatar
        AntoValls Mozilla Firefox Windows
        22 noviembre 2010 at 08:33 #

        Tengo una pagina maestra que tiene cargado los estilos y la pantalla de login usa esa pagina maestra, como la puedo usar para que funcione.. Gracias otra vez..

    • avatar
      GeekZero PARAGUAY Google Chrome Windows
      22 noviembre 2010 at 21:34 #

      y todo depende como lo construiste, si puede sube tu proyecto a algun lado asi lo puedo descargar y lo reviso apenas tenga tiempo..

  3. avatar
    pablo CHILE Mozilla Firefox Windows
    27 septiembre 2010 at 10:44 #

    bueno el tutorial, como lo hago para hacer esto mismo con sql server 2000?

    • avatar
      GeekZero PARAGUAY Google Chrome Windows
      27 septiembre 2010 at 10:52 #

      Hola Pablo, no comprendo bien tu pregunta ya que este sistema de autenticación no implica conexión a base de datos, se autentica simplemente a través del fichero web.config.

Responder