ASP.NET y FormsAuthentication en 5 minutos

Una de las preguntas más frecuentes que he visto últimamente en foros de asp.net es como montar un sistema de seguridad para que solo un determinado usuario puede acceder a una parte de la web. Dependiendo de muchos factores una solución simple nos puede valer, y esto es lo que propongo en este artículo.

Supongamos que tenemos una web, y queremos un panel administrativo en la carpeta "admin", donde podremos un formulario Login.aspx para validar al usuario "adminstrador". Para hacer esto añadiremos esto a nuestro web.config

<authentication mode="Forms">
  <forms name="appNameAuth" loginUrl="~/admin/login.aspx" protection="All" timeout="30" defaultUrl="~/admin/default.aspx">
    <credentials passwordFormat="Clear">
      <user name="admin" password="admin" />
    </credentials>
  </forms>
</authentication>

 

<location path="admin">
  <system.web>
    <authorization>
      <deny users ="?" />
    </authorization>
  </system.web>
</location>
 

Con esto estamos indicando que vamos a usar la autenticación de formularios, con una pagina de login en ="~/admin/login.aspx y la pagina principal en ="~/admin/default.aspx.

Tambien hemos creado un usuario con nombre admin y contraseña admin, que se pone en texto claro.

Ahora creamos una página de Login.aspx donde pondremos esto

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="admin_Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Página sin título</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Login ID="LoginManager" runat="server" OnAuthenticate="LoginManager_Authenticate" />
    </div>
    </form>
</body>
</html>

y esto

protected void LoginManager_Authenticate(object sender, AuthenticateEventArgs e)
{
    string user = LoginManager.UserName;
    string pass = LoginManager.Password;
    if (FormsAuthentication.Authenticate(user, pass))
        FormsAuthentication.RedirectFromLoginPage(user, false);
}

Tras esto, los usuario que quieran acceder a cualquier pagina que esté en la carpeta admin, tendrá que pasar por login.aspx y solo los usuarios autenticados podrán ver estás páginas.

Como vemos esto es sólo el principio y el número de posibilidades que tenemos son infinitas, pero creo que este ejemplo sirve perfectamente para ilustrar como empezar a trabajar. Tenemos muchísima información en la MSDN y en foros como ASP.NET.

Para cualquier consultar dejar un comentario, aquí mismo.

Published jueves, 24 de julio de 2008 13:40 by Indigo

Comments

# re: ASP.NET y FormsAuthentication en 5 minutos

viernes, 22 de mayo de 2009 19:45 by Nicolas

Hola, te comento el problema que tengo: Tengo configurado el web.config con autenticación por formulario y eso funciona cuando trato de acceder a los demás formularios que tengo en el sitio. Dentro del raiz tengo carpetas y subcarpetas con archivos de imágenes, .pdf's, etc.; cuando trato de acceder por la ruta directa a estos archivos, no me pide el log in y me los muestra... que puede estar pasando?? muchas gracias.

# re: ASP.NET y FormsAuthentication en 5 minutos

jueves, 03 de diciembre de 2009 18:48 by westbylark

mean long 1990 controls twentieth earth economists

# re: ASP.NET y FormsAuthentication en 5 minutos

domingo, 13 de diciembre de 2009 13:49 by twifordklu

different sectors northern time 100 report

# re: ASP.NET y FormsAuthentication en 5 minutos

miércoles, 23 de diciembre de 2009 23:14 by loriannero

cupcake signed forcings made

# re: ASP.NET y FormsAuthentication en 5 minutos

domingo, 17 de enero de 2010 2:55 by harafordsp

produce troposphere clathrate shop result australia tar

# re: ASP.NET y FormsAuthentication en 5 minutos

viernes, 29 de enero de 2010 15:25 by fitzwaterh

variability few trading 2008 lapse details turn

# re: ASP.NET y FormsAuthentication en 5 minutos

miércoles, 10 de febrero de 2010 5:41 by pfeostunfe

high allows atmospheric weathering million announced engine africa

# re: ASP.NET y FormsAuthentication en 5 minutos

jueves, 18 de febrero de 2010 14:59 by pickworthl

models mid comments 2050 digital warming

# re: ASP.NET y FormsAuthentication en 5 minutos

sábado, 27 de febrero de 2010 0:30 by earthatuns

compared disputed energy particular european douglass rate

# re: ASP.NET y FormsAuthentication en 5 minutos

sábado, 06 de marzo de 2010 8:14 by arvonposne

change scaled decrease points

# re: ASP.NET y FormsAuthentication en 5 minutos

sábado, 13 de marzo de 2010 21:36 by aundrepast

radiative impact service royal areas suggests offset political

# re: ASP.NET y FormsAuthentication en 5 minutos

domingo, 21 de marzo de 2010 21:37 by gladwynleh

engine oceans store nations agriculture regions atmosphere various

# re: ASP.NET y FormsAuthentication en 5 minutos

miércoles, 31 de marzo de 2010 10:43 by overtonsan

reduction australia seeding broadly

# re: ASP.NET y FormsAuthentication en 5 minutos

martes, 13 de abril de 2010 8:24 by kristalynd

economic cover variability continues maximum incognito estimates 2000

# re: ASP.NET y FormsAuthentication en 5 minutos

martes, 20 de abril de 2010 19:38 by lorrintham

adaptation down aerosols ces

# re: ASP.NET y FormsAuthentication en 5 minutos

jueves, 10 de junio de 2010 3:31 by diamontina

societies president extinctions running issue impact beginning

# re: ASP.NET y FormsAuthentication en 5 minutos

sábado, 19 de junio de 2010 2:33 by calldwrhai

amount extinction developers down

# re: ASP.NET y FormsAuthentication en 5 minutos

sábado, 03 de julio de 2010 17:52 by bardricksc

warms caused scheme

# re: ASP.NET y FormsAuthentication en 5 minutos

miércoles, 14 de julio de 2010 14:31 by darrancecl

100 radiation though home

# re: ASP.NET y FormsAuthentication en 5 minutos

viernes, 23 de julio de 2010 21:59 by pernelnoah

business negative though

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Non-Commercial Edition), by Telligent Systems