Seguridad de Formulario para ASP.NET

Publicado por en mar 23, 2014 en Programación | 0 comentarios

Seguridad de Formulario para ASP.NET

Holas, perdón por no postear :( pero aquí estamos de nuevo, hoy hablaremos del metodo mas sencillo  para implementar en un proyecto web, este metodo es la seguridad de Formulario.

Microsoft  nos dice lo siguiente (extraido de  http://support.microsoft.com/kb/306590/es ) :

Flujo de seguridad con una solicitud (seguridad de Formulario)

Los pasos siguientes esquematizan la secuencia de eventos cuando un cliente realiza una solicitud:

  1. Un cliente solicita una página .aspx que reside en un servidor IIS.
  2. Las credenciales del cliente pasan a IIS.
  3. IIS autentica al cliente y reenvía el símbolo (token) autenticado junto con la solicitud del cliente al proceso de trabajo de ASP.NET.
  4. Basándose en el símbolo autenticado procedente de IIS y la configuración de la aplicaciones Web, ASP.NET decide si debe suplantar a un usuario en el subproceso que está procesando la solicitud. A diferencia de lo que ocurre con Microsoft Active Server Pages (ASP), ASP.NET no suplanta de manera predeterminada al usuario autenticado. Para habilitar la representación, hay que configurar el atributo impersonate de la sección de identidad en el archivo Web.config en true.

En la práctica vemos lo siguiente:

1. Creamos un Proyecto Web, en mi caso fue con framework 3.5 y con vb.net (este codigo aplica a cualquier versión de Framework)

2. En el archivo  web.config  ponemos lo siguiente ( debajo del tag </compilation> ):

<authentication mode=”Forms”>
<forms loginUrl=”login.aspx” protection=”All” timeout=”20″ name=”AppNameCookie” requireSSL=”false”

slidingExpiration=”true” defaultUrl=”main.aspx” cookieless=”UseCookies” enableCrossAppRedirects=”false”/>
</authentication>

<authorization>
<deny users=”?”/>
<allow users=”*”/>
</authorization>

Podemos ver dell código anterior dos aspectos generales en cuanto a seguridad informatica

- Autentificación( el cadenero del antro):  indica quien puede accesar o no.

-Autorización ( la reservación del antro): en lugar o lugares donde podemos accesar  y poder realizar actividades permitidas

Hablando del Codigo

loginUrl=”login.aspx” , nos indica el  formulario de autentificación

timeout=”20″ , tiempo de la sesión en minutos, si hay inactividad  durante 20 min (de acuerdo al ejemplo) manda al usuario al login.aspx

defaultUrl=”main.aspx” , página por default que  se presentara despues dela autentificación.

<deny users=”?”/> , se deniega  el acceso a cualquier usuario no autentificado, en los archivos contenidos en el proyecto

<allow users=”*”/>, se da acceso a todos los archivos del proyecto a las personas autentificadas

En caso de que quieran dar permiso a  una carpeta o archivo especifico para que lo vea cualquier usuario  incluyendo los no autentificados pondrían  en el web.config, antes de l </configuration>

<location path=”imagenes”>
<system.web>
<authorization>
<allow users=”*”/>
</authorization>
</system.web>
</location>

En este caso  se le da permiso a todos para accesar ala carpeta path=”imagenes”, podriamos poner igual path=”pato.jpg” si es un archivo  específico. esta parte de código   se puede repetir tantas veces se requiera.

Código de login.aspx:

Parte HTML

<table style=”width:94%; font-family: Arial, Helvetica, sans-serif; font-size: small;”>
<tr>
<td
style=”font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: bold”>
&nbsp;</td>
<td

style=”font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: bold”
align=”left”>
CONTROL DE ACCESO</td>
</tr>
<tr>
<td>
&nbsp;</td>
<td align=”left”>
<asp:Label ID=”lbMsj” runat=”server” Font-Bold=”True” ForeColor=”#CC0000″></asp:Label>
</td>
</tr>
<tr>
<td align=”right”>
</td>
<td align=”left”>
Usuario:&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox ID=”txtUsuario” runat=”server”
MaxLength=”10″ Width=”136px”>
</td>
</tr>
<tr>
<td align=”right”>
&nbsp;</td>
<td align=”left”>
Contraseña:<asp:TextBox ID=”txtPassword” runat=”server”
MaxLength=”10″ TextMode=”Password”
Width=”136px”></asp:TextBox>
</td>
</tr>

</table>

Agregamos dos cajas de texto y un botón, para poner nombre de usuario y contraseña:

CodeBehind, en el evento click del botón:

Protected Sub IdAccesar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles IdAccesar.Click

If  txtUsuario.text=”JuanitoP”  and  txtPassword.text=”ptr564″  Then
FormsAuthentication.SetAuthCookie(txtUsuario.text, True)
Response.Redirect(“main.aspx”)
Else
lbMsj.Text = “Contraseña o nombre de usuario  incorrectos, favor de verificar”
End If

Verificamos que el nombre de usuario y contraseña sean correcto, si son correctos los deja pasar en caso  de que no, les manda un mensaje :)

Se puede Implementar con encriptación y en lazada a una base de datos, lo veremos posteriormente

Espero  les guste este post, y pues hata la proxima . No se les olvide comentar porfavor.

Joshua :)

PD. Perdonen las faltas de ortografía :(

Deja un comentario