Vous êtes sur la page 1sur 22

Prctica A: seguridad de una aplicacin Web Microsoft

ASP.NET
Medical
Medical.aspx
Medical
Medical.aspx
Benefits
Home Page
Default.aspx
Benefits
Home Page
Default.aspx
Life Insurance
Life.aspx
Life Insurance
Life.aspx
Retirement
Retirement.aspx
Retirement
Retirement.aspx
Dental
Dental.aspx
Dental
Dental.aspx
Dentists
Doctors
Doctors.aspx
Doctors
Doctors.aspx
Doctors
Logon Page
Login.aspx
Logon Page
Login.aspx
Registration
Register.aspx
Registration
Register.aspx
Coho
Winery
Prospectus
Prospectus.aspx
Prospectus
Prospectus.aspx
XML Web
Service
dentalService1.asmx
XML Web
Service
dentalService1.asmx
Page Header
Header.ascx
Page Header
Header.ascx
ASPState
tempdb
Lab Web
Application
User Control
namedate.ascx
User Control
namedate.ascx
Menu
Component
Class1.vb or Class1.cs
Menu
Component
Class1.vb or Class1.cs
XML
Files
Web.
config


En este laboratorio, aprenderemos a:
Securizar una aplicacin Web MicrosoftASP.NET utilizando la
autenticacin basada en Microsoft Windows.
Securizar una aplicacin Web utilizando la autenticacin basada en
formularios.
Crear pginas de inicio de sesin y de registro.

Para trabajar en este laboratorio, es necesario tener:
Conocimientos sobre cmo est estructurado un archivo.
Conocimientos sobre cmo utilizar procedimientos almacenados para
controles de servidor.
Conocimientos sobre cmo funcionan los controles de validacin.

Coho Winery ofrece varios beneficios a sus empleados. En los laboratorios de
este curso, crearemos un sitio Web que permita a los empleados seleccionar y
configurar los beneficios que elijan.
Ahora que hemos implementado todos los beneficios, deseamos permitir
nicamente a usuarios registrados el acceso a la aplicacin Web. En primer
lugar, securizaremos el sitio utilizando la autenticacin basada en Windows, y a
continuacin la cambiaremos a autenticacin basada en formularios.
Seguidamente, implementaremos la pgina de registro para ofrecer a los nuevos
empleados la oportunidad de registrarse en el sitio Web de beneficios de Coho
Winery. Finalmente, implementaremos la pgina para cerrar sesin.
Objetivos
Requisitos previos
Escenario
Tiempo estimado para
completar el laboratorio:
45 minutos
Ejercicio 0
Configuracin del laboratorio
Para realizar este laboratorio, es necesario haber creado el proyecto de la
aplicacin Web Benefits y el proyecto de la biblioteca de clases BenefitsList.
Estos proyectos pueden haberse creado utilizando Visual Basic .NET o
Microsoft Visual C#

.NET.
Si no se han creado estos proyectos, realizar los siguientes pasos:
Crear la solucin LabApplication

Realizar este procedimiento nicamente si no se ha creado un
archivo de solucin LabApplication.

1. Utilizando Visual Studio .NET, crear una nueva solucin en blanco
denominada LabApplication:
a. En el men Archivo, seleccionar Nuevo, y hacer clic en Solucin en
blanco.
b. En el cuadro de dilogo Nuevo proyecto, escribir LabApplication en el
cuadro de texto Nombre y hacer clic en Aceptar.

Crear el proyecto Benefits

Realizar este procedimiento nicamente si no se ha creado
anteriormente un proyecto Benefits, o si se ha eliminado

1. Crear un nuevo proyecto de aplicacin Web ASP.NET, denominado
BenefitsVB o BenefitsCS, en la solucin LabApplication:
a. En el men Archivo, seleccionar Nuevo, y hacer clic en Proyecto.
b. En el cuadro de dilogo Nuevo proyecto, en la lista Tipos de proyecto,
hacer clic en Proyectos de Visual Basic o Proyectos de Visual C#.
c. En la lista Plantillas, hacer clic en Aplicacin Web ASP.NET,
establecer la ubicacin a http://localhost/BenefitsVB para el proyecto
Visual Basic .NET o a http://localhost/BenefitsCS para el proyecto
Visual C#.
d. Hacer clic en Agregar a Solucin, y hacer clic en Aceptar.

Cuando se agregan proyectos a la solucin, es importante el
uso de maysculas en el nombre del proyecto. Probablemente, utilizaremos
algunos formularios Web Forms ya generados en ste y en otros
laboratorios, por ello, debemos verificar que hemos escrito con maysculas
el nombre del proyecto Benefits.


Importante
Importante
Precaucin
Actualizar el proyecto Benefits
1. En Visual Studio .NET, abrir el archivo de solucin LabApplication.
2. En el Explorador de soluciones, hacer clic con el botn derecho en
BenefitsListVB o BenefitsListCS, seleccionar Agregar y hacer clic en
Agregar elemento existente.
3. Buscar los archivos de proyecto:
Ir a la carpeta VB\Starter\BenefitsVB .

Ir a la carpeta CS\Starter\BenefitsCS .
Estas carpetas pueden encontrarse dentro del fichero labs14.zip
4. En el cuadro Archivos de tipo del cuadro de dilogo Agregar elemento
existente Benefits, hacer clic en Todos los archivos (*.*).
5. Seleccionar todos los archivos de la carpeta y hacer clic en Abrir.
6. Hacer clic en S a la pregunta de sobrescribir o recargar los archivos.

Crear la biblioteca de clases BenefitsList

Realizar este procedimiento nicamente si no se ha creado
anteriormente un proyecto BenefitsList, o si se ha eliminado

1. Crear un nuevo proyecto de biblioteca de clases.
Crear un nuevo proyecto de biblioteca de clases Visual Basic .NET con el
nombre BenefitsListVB, y agregarlo a la solucin LabApplication:
a. En el men Archivo, seleccionar Nuevo y hacer clic en Proyecto.
b. En el cuadro de dilogo Nuevo proyecto, en la listaTipos de proyecto,
hacer clic en Proyectos de Visual Basic.
c. En la lista Plantillas, hacer clic en Biblioteca de clases, establecer el
Nombre de BenefitsListVB.
d. Hacer clic en Agregar a solucin, y clic en Aceptar.
Crear un nuevo proyecto de biblioteca de clases Visual C#.NET con el
nombre BenefitsListCS, y agregarlo a la solucin LabApplication:
a. En el men Archivo, seleccionar Nuevo y hacer clic en Proyecto.
b. En el cuadro de dilogo Nuevo proyecto, en la listaTipos de proyecto,
hacer clic en Proyectos de Visual C#.
c. En la lista Plantillas, hacer clic en Biblioteca de clases, establecer el
Nombre de BenefitsListCS.
d. Hacer clic en Agregar a solucin, y clic en Aceptar.

Verificar que se han escrito correctamente las maysculas del
proyecto BenefitsList.


Para el proyecto Visual
Basic .NET
Para el proyecto Visual
C#
Importante
Para el proyecto Visual
Basic .NET
Para el proyecto Visual
C#
Precaucin
Actualizar el proyecto BenefitsList
1. En Visual Studio .NET, abrir el archivo de solucin LabApplication.
2. En el Explorador de soluciones, hacer clic con el botn derecho en
BenefitsListVB o BenefitsListCS, seleccionar Agregar y hacer clic en
Agregar elemento existente.
3. Ir al proyecto BenefitsList:
Ir a la carpeta VB\Starter\BenefitsListVB.
Ir a la carpeta CS\Starter\BenefitsListCS.
Estas carpetas pueden encontrarse dentro del fichero labs14.zip
4. En el cuadro Archivos de tipo del cuadro de dilogo Agregar elemento
existente BenefitsList, hacer clic en Todos los archivos (*.*).
5. Seleccionar todos los archivos de la carpeta y hacer clic en Abrir.
6. Hacer clic en S a la pregunta de si sobrescribir o recargar los archivos.

Crear una referencia al componente BenefitsList del proyecto Benefits
1. En el proyecto Benefits de la solucin LabApplication, completar los
siguientes pasos para agregar una referencia al componente BenefitsList
que acabamos de crear:
a. Hacer clic con el botn derecho en el proyecto BenefitsVB o
BenefitsCS en el Explorador de soluciones y hacer clic en Agregar
referencia.
b. En el cuadro de dilogo Agregar referencia, en la pestaa Proyectos,
hacer doble clic en el proyecto BenefitsListVB o BenefitsListCS.
c. En la lista Componentes seleccionados, seleccionar el componente
BenefitsListVB o BenefitsListCS, y hacer clic en Aceptar.
El componente se agrega a la carpeta Referencias en el Explorador de
soluciones.

Crear el Servicio Web XML Dental

Realizar este procedimiento nicamente si no se ha creado el
proyecto DentalService, o si se ha eliminado

2. Crear un nuevo proyecto de servicio Web XML.
Crear un nuevo proyecto de Servicio Web XML de Visual Basic .NET
denominado DentalServiceVB, y agregarlo a la solucin LabApplication:
a. En el men Archivo, seleccionar Nuevo y hacer clic en Proyecto.
b. En el cuadro de dilogo Nuevo proyecto, en la lista Tipos de proyecto,
hacer clic en Proyectos de Visual Basic.
a. En la lista Plantillas, hacer clic en Servicio Web ASP.NET, y
establecer la ubicacin en http://localhost/DentalServiceVB.
b. Hacer clic en Agregar a solucin, y clic en Aceptar.

Verificar que se han utilizado correctamente las maysculas en
Para el proyecto Visual
Basic .NET
Para el proyecto Visual
C#
Importante
Para el proyecto Visual
Basic .NET
Precaucin
el proyecto DentalServiceVB.

Crear un nuevo proyecto de Servicio Web XML con Visual C#.NET
denominado DentalServiceCS, y agregarlo a la solucin LabApplication:
c. En el men Archivo, seleccionar Nuevo y hacer clic en Proyecto.
d. En el cuadro de dilogo Nuevo proyecto, en la lista Tipos de proyecto,
hacer clic en Proyectos de Visual C#.
a. En la lista Plantillas, hacer clic en Servicio Web ASP.NET, y
establecer la ubicacin en http://localhost/DentalServiceCS.
b. Hacer clic en Agregar a solucin, y clic en Aceptar.

Verificar que se han utilizado correctamente las maysculas en
el proyecto DentalServiceVB.


Actualizar el proyecto DentalService
1. En Visual Studio .NET, abrir el archivo de solucin LabApplication.
2. En el Explorador de soluciones, hacer clic con el botn derecho en
DentalServiceVB o DentalServiceCS, seleccionar Agregar, y hacer clic en
Agregar elemento existente.
3. Buscar los archivos de proyecto:
Ir aVB\Starter\DentalServiceVB.

Ir aCS\Starter\DentalServiceCS.
Estas carpetas pueden encontrarse dentro del fichero labs14.zip
4. En el cuadro Archivos de tipo del cuadro de dilogo Agregar elemento
existente DentalServiceVB, hacer clic en Todos los archivos (*.*).
5. Seleccionar todos los archivos de esta carpeta y hacer clic en Abrir.
6. Hacer clic en S a la pregunta de sobrescribir o recargar los archivos.
7. Generar el servicio Web XML DentalService haciendo clic con el botn
derecho en el proyecto DentalServiceVB o DentalServiceCS en el
Explorador de soluciones y hacer clic en Generar.

Agregar una referencia Web en el proyecto Benefits al servicio Web
DentalService
1. En el proyecto Benefits de la solucin LabApplication, realizar los
siguientes pasos para agregar una referencia Web al servicio Web XML
DentalService:
a. En el Explorador de soluciones, hacer clic con el botn derecho en
BenefitsVB o BenefitsCS y clic en Agregar referencia Web.
b. En el cuadro de texto Direccin, escribir
http://localhost/DentalServiceVB/DentalService1.asmx

http://localhost/DentalServiceCS/DentalService1.asmx
y pulsar ENTER..
Para el proyecto Visual
C# .NET
Precaucin
Para el proyecto Visual
Basic .NET
Para el proyecto Visual
C# .NET
Proyecto Visual Basic
.NET
Proyecto Visual C#
Se mostrar la referencia Web DentalService1.
c. Hacer clic en Agregar referencia.
La referencia Web se agrega al proyecto en la carpeta Referencias Web.
2. En el Explorador de soluciones, expandir Referencias Web, hacer clic con
el botn derecho en localhost, y seleccionar Cambiar nombre.
3. Escribir DentalWebRef, y pulsar ENTER.
4. Generar la solucin haciendo clic en Generar solucin en el men
Generar.

Instalar y configurar las bases de datos del estado de sesin
1. En el men Inicio, seleccionar Todos los programas, seleccionar
Accesorios, y hacer clic en Lnea de comandos.
Se abre una ventana de comandos.
2. En la lnea de comandos, escribir el siguiente comando, siendo version la
ltima versin del .NET Framework instalada en el equipo, y pulsar
ENTER:
cd \WINDOWS\Microsoft.NET\Framework\version\

La lnea de comandos cambia al nuevo directorio.
3. En la lnea de comandos, escribir el siguiente comando, y pulsar ENTER:
OSQL S localhost E <InstallSqlState.sql

La ventana de comandos muestra una serie de nmeros y mensajes, y
regresa a la lnea de comandos. Se han restablecido las bases de datos
ASPState y tempdb.
4. Cerrar la lnea de comandos y abrir Windows Explorer.
5. Ir al siguiente directorio:
VB\Starter

CS\Starter
Estas carpetas pueden encontrarse dentro del fichero labs14.zip
6. Hacer doble clic en Lab14.bat.
Este archivo de proceso por lotes ejecuta una consulta SQL que configura la
seguridad para las bases de datos ASPState y tempdb.
7. Cerrar Windows Explorer.

Proyecto Visual Basic
.NET
Proyecto Visual C#
Ejercicio 1
Securizar nuestro sitio Web utilizando la autenticacin basada en
Windows
En este ejercicio, configuraremos Internet Information Services (IIS) para que
utilice la autenticacin bsica y obtener acceso a pginas seguras, y la
autenticacin annima para obtener acceso a pginas no seguras. A
continuacin, editaremos el archivo Web.config para denegar el acceso a los
usuarios no autenticados a las pginas medical.aspx y doctors.aspx. Finalmente,
denegaremos el acceso a usuarios no autenticados a cualquier pgina del sitio
Coho Winery Web.
Configurar la autenticacin de IIS
1. En el men Inicio, hacer clic con el botn derecho en Mi PC y clic en
Administrar.
2. En la consola Administracin de equipos, expandir Servicios y
aplicaciones, expandir Servicios de Internet Information Services,
expandir Sitios Web, y expandir Sitio Web predeterminado.
3. Hacer clic con el botn derecho en la aplicacin Web BenefitsVB o
BenefitsCS y clic en Propiedades.
4. En el cuadro de dilogo Propiedades de BenefitsVB o BenefitsCS, en la
ficha Seguridad de directorios, en la seccin Control de autenticacin y
acceso annimo, hacer clic en Modificar.
5. En el cuadro de dilogo Mtodos de autenticacin, comprobar que est
seleccionado Acceso annimo, y que no est seleccionado Autenticacin
integrada de Windows, y seleccionar la casilla de verificacin de
Autenticacin bsica (la contrasea se enva en texto claro).
6. Cuando recibamos el aviso de seguridad sobre la habilitacin de la
autenticacin bsica, hacer clic en S. El aspecto de la configuracin es
como el de la siguiente ilustracin.


Se ha habilitado el acceso annimo, permitindonos
acceder a pginas seguras y no seguras de la misma aplicacin Web.
Para este ejercicio, se ha habilitado la autenticacin bsica sin utilizar
Secure Sockets Layer (SSL), lo cual significa que las contraseas se envan
utilizando texto claro. En un escenario del mundo real, para estar seguro,
debemos obtener un certificado de servidor y utilizar SSL cuando utilicemos
la autenticacin bsica.

7. Hacer clic en Aceptar, clic de nuevo en Aceptar y cerrar la consola
Administracin de equipos.

Nota de seguridad
Agregar una pgina para mostrar los resultados de la informacin
sobre seguridad
1. Abrir el proyecto BenefitsVB o BenefitsCS en la solucin LabApplication
Visual Studio .NET.
2. Agregar el formulario Web Form securitytest.aspx al proyecto Benefits
desde la carpeta
VB\Starter\BenefitsVB.
CS\Starter\BenefitsCS.
Estas carpetas pueden encontrarse dentro del fichero labs14.zip
3. Abrir el archivo securitytest.aspx.vb o securitytest.aspx.cs y examinar su
contenido. cul es la utilidad de las dos lneas de cdigo del procedimiento
de evento Page_Load?
____________________________________________________________
____________________________________________________________

Configurar la seguridad del archivo Web.config para algunas de las
pginas del proyecto Benefits
1. Abrir el archivo Web.config en el proyecto BenefitsVB o BenefitsCS.
2. Buscar la seccin <authentication>y verificar que el modo est establecido
en autenticacin Windows.
La configuracin debera tener lo siguiente:
<authentication mode="Windows" />

3. Para el proyecto Visual Basic .NET, eliminar la seccin <authorization>
existente de Web.config.
4. Denegar el acceso a usuarios annimos para las pginas medical.aspx y
doctors.aspx. Introducir nuestra configuracin al final del archivo
Web.config, despus de la etiqueta </system.web>, pero antes de la etiqueta
</configuration>.
La configuracin debera tener el siguiente aspecto:
<location path="medical.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>

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

Visual Basic .NET
Visual C#
Guardar y probar
1. Guardar los cambios.
2. Generar el proyecto BenefitsVB o BenefitsCS.
3. Abrir un nuevo navegador e ir a http://localhost/BenefitsVB/default.aspx o
http://localhost/BenefitsCS/default.aspx.
4. Hacer clic en Life Insurance y comprobar que la pgina life.aspx se abre
sin solicitar ninguna credencial de usuario.
5. Ir a http://localhost/BenefitsVB/SecurityTest.aspx o
http://localhost/BenefitsCS/SecurityTest.aspx.
Esta pgina no muestra ninguna informacin de autenticacin debido a que
no estamos autenticados.
6. Ir a http://localhost/BenefitsVB/Medical.aspx o
http://localhost/BenefitsCS/Medical.aspx. Deberamos ver el cuadro de
dilogo Conectar a localhost.
7. Introducir nuestro nombreequipo\nombreusuario y la contrasea de nuestra
aula.
Ahora podemos explorar la pgina medical.aspx.
8. Ir de nuevo a http://localhost/BenefitsVB/SecurityTest.aspx o
http://localhost/BenefitsCS/SecurityTest.aspx.
La pgina muestra ahora nuestra informacin de autenticacin. Si no se
muestra nuestra informacin de autenticacin, actualizar la pgina.
9. Cerrar el navegador.

Configurar la seguridad de la carpeta del sitio Web BenefitsVB o
BenefitsCS en el archivo Web.config
1. Abrir el archivo Web.config.
2. Denegar el acceso a usuarios annimos a toda la carpeta Benefits. Para ello,
debemos eliminar las dos secciones <location>que se agregaron
anteriormente y crear una nueva seccin para denegar el acceso a usuarios
annimos a toda la carpeta, justo despus del elemento <authentication>en
el archivo Web.config.
La configuracin debera tener el siguiente aspecto:
<authorization>
<deny users="?" />
</authorization>


Guardar y probar
1. Guardar los cambios.
No es necesario volver a generar el proyecto BenefitsVB o BenefitsCS ya
que no ha cambiado el cdigo. Tan pronto como se guarde el archivo
Web.config, los cambios tendrn efecto.
2. Abrir una nueva instancia del navegador e ir a
http://localhost/BenefitsVB/default.aspx o
http://localhost/BenefitsCS/default.aspx.

Debemos asegurarnos de que abrimos un nuevo navegador. Si
continuamos en la sesin autenticada anterior, no podremos probar si la
seguridad funciona.

Esta vez deberamos ver inmediatamente el cuadro de dilogo Conectar a
localhost, ya que todas las pginas estn aseguradas, incluyendo
default.aspx.
3. Introducir nombreequipo\nombreusuario y la contrasea del aula, y hacer
clic en Aceptar.
Ahora podemos ir a todas las pginas que se encuentran en la aplicacin
Web Benefits.

Acceder al sitio Web Coho Winery de un compaero
1. Abrir un nuevo navegador e ir a:
http://Nombreequipocompaero/BenefitsVB/default.aspx o
http://Nombreequipocompaero/BenefitsCS/default.aspx
2. Deberamos ver el cuadro de dilogo Conectar a localhost.
3. Introducir nombre_equipo\nombreusuario y la contrasea del aula, y hacer
clic en Aceptar.
Ahora podemos ir a todas las pginas del sitio Web Coho Winery de nuestro
compaero.

Nota
Ejercicio 2
Securizar el sitio Web utilizando la autenticacin basada en
formularios
En este ejercicio, cambiaremos la configuracin de IIS para utilizar nicamente
la autenticacin annima, y utilizaremos la autenticacin basada en formularios
para administrar el acceso a pginas seguras de la aplicacin Web Benefits.
Configuraremos el archivo Web.config para utilizar la autenticacin basada en
formularios denegando el acceso a usuarios no autenticados a ninguna pgina
de la carpeta del proyecto Benefits. Finalmente, crearemos la pgina login.aspx
y validaremos las credenciales de usuario comparndolas con las incluidas en la
tabla Logins de la base de datos de Coho.
Configurar IIS para utilizar nicamente autenticacin annima
1. En el men Inicio, hacer clic con el botn derecho en Mi PC y hacer clic en
Administrar.
2. En la consola Administracin de equipos, expandir Servicios y
aplicaciones, expandir Internet Information Services, expandir Sitios
Web, y expandir Sitio Web predeterminado.
3. Hacer clic con el botn derecho en la aplicacin Web BenefitsVB o
BenefitsCS y clic en Propiedades.
4. En el cuadro de dilogo Propiedades de BenefitsVB o BenefitsCS, en la
ficha Seguridad de directorios, en la seccin Control de autenticacin y
acceso annimo, hacer clic en Edicin.
5. En el cuadro de dilogo Mtodos de autenticacin, verificar que est
seleccionada la casilla de verificacin de Acceso annimo y desactivar la
casilla de verificacin de Autenticacin bsica (la contrasea se enva en
texto claro).
6. Hacer clic en Aceptar, clic de nuevo en Aceptar, y cerrar la consola
Administracin de equipos.

Configurar la autenticacin basada en formularios en el archivo
Web.config
1. Abrir el archivo Web.config en el proyecto BenefitsVB o BenefitsCS.
2. Buscar la seccin <authentication>y cambiarla para utilizar la autenticacin
basada en formularios. Crearemos una cookie denominada ASPXAUTH, y
redirigiremos al usuario a una pgina denominada login.aspx si no est
autenticado.
La configuracin debera tener el siguiente aspecto:
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="login.aspx" />
</authentication>


Agregar una cadena de conexin a la base de datos de Coho en el
archivo Web.config
1. En el archivo Web.config, agregar una seccin <appSettings>. Nuestra
configuracin debe colocarse al final del archivo Web.config, tras la
etiqueta </system.web>, pero antes de la etiqueta </configuration>.

Si el archivo Web.config ya tiene una seccin <appSettings>, no
crear otra. Continuar con los pasos siguientes y agregar el nuevo cdigo a la
seccin <appSettings>existente.

2. Agregar una nueva clave denominada conStrCoho con una cadena de
conexin que utilice la seguridad integrada de Windows para acceder a la
base de datos local de Coho. La adicin al archivo Web.config debera ser
como la siguiente:
<appSettings>
<add key="conStrCoho" value="data source=localhost;
initial catalog=Coho; integrated security=true" />
</appSettings>


Agregar un formulario Web Form login.aspx para introducir las
credenciales
Agregar el formulario Web Form login.aspx desde la carpeta
VB\Starter\BenefitsVB o CS\Starter\BenefitsCS al proyecto BenefitsVB o
BenefitsCS. Estas carpetas pueden encontrarse dentro del fichero labs14.zip
Esta pgina contiene un cuadro de texto para introducir la direccin de
correo electrnico, un cuadro de contrasea, un botn Submit, dos etiquetas
y un hiperenlace.
Abrir la pgina de cdigo subyacente del formulario Web Form login.aspx y
localizar el siguiente comentario en la seccin Imports al principio de la
pgina:
TODO Lab 14: add the Imports for forms-based auth

1. Para este ejercicio, utilizaremos la clase FormsAuthentication. Utilizando
los documentos de Ayuda, determinar qu espacio de nombres debemos
importar para utilizar esta clase, y escribir la instruccin de importacin.
El cdigo debera ser como el siguiente:
Imports System.Web.Security

using System.Web.Security;

Nota
Visual Basic .NET
Visual C#
3. Localizar la funcin Login y examinar su contenido.
Cul es el nombre del mtodo que se utiliza para recuperar la cadena de
conexin a la base de datos de Coho desde la seccin <appSettings> del
archivo Web.config?
_____________________________________________________________
_____________________________________________________________
Cul es el nombre del procedimiento almacenado que se utiliza para el
inicio de sesin?
_____________________________________________________________
_____________________________________________________________
4. Localizar el siguiente comentario en el procedimiento de evento
cmdLogin_Click:
TODO Lab 14: Call the Login function

5. Invocar la funcin Login, pasando el valor de la caja de texto txtEmail y el
valor de txtPassword. Almacenar el valor devuelto en la variable
strEmployeeID.
El cdigo debera ser como el siguiente:
strEmployeeId = Login(txtEmail.Text, txtPassword.Text)

strEmployeeId = Login(txtEmail.Text, txtPassword.Text);

6. Localizar el siguiente comentario en el procedimiento de evento
cmdLogin_Click:
TODO Lab 14: Login users and generate an auth. cookie

7. Escribir el cdigo para autenticar usuarios, crear una cookie de
autenticacin temporal (no persistente) y redirigir al usuario a la pgina que
solicit originalmente:
a. Probar si la variable strEmployeeId no es una cadena vaca. Esto
muestra si la direccin electrnica y contrasea del empleado se han
encontrado en la base de datos.
b. Si la variable strEmployeeId no es una cadena vaca, redirigir al usuario
a la pgina solicitada y crear una cookie temporal (no persistente) con la
cadena de identidad strEmployeeId.
c. Si la variable strEmployeeId es una cadena vaca, redirigir, y mostrar el
mensaje Login Failed! en la etiqueta lblInfo de la pgina login.aspx.
Visual Basic .NET
Visual C#
El cdigo debera ser como el siguiente:
If (strEmployeeId <> "") Then
FormsAuthentication.RedirectFromLoginPage _
(strEmployeeId, False)
Else 'Login failed
lblInfo.Text = "Login Failed!"
End If

if (strEmployeeId != "")
{
FormsAuthentication.RedirectFromLoginPage
(strEmployeeId, false);
}
else //Login failed
{
lblInfo.Text = "Login Failed!";
}

En qu se diferencia crear una cookie temporal (no persistente) y una
cookie persistente?
____________________________________________________________
____________________________________________________________
Qu mtodo utilizamos para leer la identidad del usuario autenticado, que
est almacenada en la cookie de autenticacin, desde un formulario Web
Form de la aplicacin Web ASP.NET?
____________________________________________________________
____________________________________________________________

Visual Basic .NET
Visual C#
Guardar y probar
1. Guardar los cambios.
2. Generar el proyecto BenefitsVB o BenefitsCS.
3. Abrir un nuevo navegador e ir a http://localhost/BenefitsVB/default.aspx o
http://localhost/BenefitsCS/default.aspx.
Deberamos ser redirigidos a la pgina login.aspx porque todas las pginas
estn securizadas, incluyendo default.aspx.
4. Examinar la URL (Uniform Resource Locator) en el navegador. Qu
vemos? Por qu?
_____________________________________________________________
_____________________________________________________________
5. Introducir la direccin electrnica y contrasea de un empleado que est
incluido en la tabla Logins de la base de datos Coho (direccin electrnica
someone@cohowinery.com, y contrasea someone), y hacer clic en Sign
In Now.
Ahora podemos navegar por todas las pginas.
6. Hacer clic en el enlace Life Insurance y comprobar que la pgina life.aspx
se abre sin solicitar nuestros credenciales.
7. Ir a http://localhost/BenefitsVB/SecurityTest.aspx o a
http://localhost/BenefitsCS/SecurityTest.aspx. Deberamos ver el ID de
empleado 1, que corresponde a la direccin electrnica
someone@cohowinery.com. Tambin veremos que somos autenticados con
la autenticacin basada en formularios.
8. Cerrar el navegador.

Cuando se utiliza la autenticacin basada en
formularios, la contrasea que se introduce en la pgina de inicio de sesin
se enva en texto claro a travs de la red. En un escenario del mundo real,
para evitar la posibilidad de que alguien obtenga la contrasea, debemos
utilizar una conexin SSL.


Nota de seguridad
Ejercicio 3 (si se dispone de tiempo)
Registrar nuevos usuarios
En este ejercicio, agregaremos cdigo a la pgina register.aspx, que permite a
los usuarios agregar un nuevo empleado a la tabla Logins de la base de datos de
Coho.
Agregar un formulario Web Form register.aspx para introducir nuevos
empleados
1. Abrir el proyecto Benefits en la solucin LabApplication de Visual Studio
.NET.
2. Agregar el formulario Web Form register.aspx desde la carpeta
VB\Starter\BenefitsVB o
CS\Starter\BenefitsCS al proyecto BenefitsVB o BenefitsCS.
Estas carpetas pueden encontrarse dentro del fichero labs14.zip
3. Abrir el formulario Web Form register.aspx y examinar su contenido. Qu
tipos de controles de validacin se utilizan en este formulario Web Form?
____________________________________________________________
____________________________________________________________
4. Abrir la pgina de cdigo subyacente register.aspx.vb o register.aspx.cs. La
pgina de cdigo subyacente contiene una funcin denominada
AddEmployee cuyo aspecto es muy similar al de la funcin Login de la
pgina de inicio, pero invoca otro procedimiento almacenado, denominado
EmployeeAdd, que agrega un nuevo empleado a la tabla Logins de la base
de datos de Coho.
5. Localizar el siguiente comentario en el procedimiento de evento
cmdValidation_Click:
TODO Lab 14: Call the AddEmployee function

6. Invocar la funcin AddEmployee, pasndole el valor de las cajas de texto
txtEmail y de txtPassword. Almacenar el valor devuelto en la variable
strEmployeeID.
El cdigo debera ser parecido al siguiente:
strEmployeeId = _
AddEmployee(txtEmail.Text, txtPassword.Text)

strEmployeeId =
AddEmployee(txtEmail.Text, txtPassword.Text);

7. Localizar el siguiente comentario en el procedimiento de evento
cmdValidation_Click:
TODO Lab 14: Login users and generate an auth. cookie

Visual Basic .NET
Visual C#
8. En la instruccin If, escribir el cdigo para autenticar usuarios, crear una
cookie de autenticacin temporal (no persistente), y redirigir al usuario al
formulario Web Form default.aspx.
El cdigo debera ser como el siguiente:
FormsAuthentication.SetAuthCookie( _
strEmployeeId, False)
Response.Redirect("default.aspx")

FormsAuthentication.SetAuthCookie(
strEmployeeId, false);
Response.Redirect("default.aspx");

9. Por qu se utiliza aqu el mtodo SetAuthCookie y no
RedirectFromLoginPage?
_____________________________________________________________
_____________________________________________________________

Guardar y probar
1. Guardar los cambios.
2. Generar el proyecto BenefitsVB o BenefitsCS.
3. Abrir un nuevo navegador e ir a http://localhost/BenefitsVB/default.aspx o a
http://localhost/BenefitsCS/default.aspx.
Deberamos ser redirigidos rpidamente a la pgina login.aspx puesto que
todas las pginas estn securizadas y, por tanto, default.aspx es una pgina
segura.
4. Hacer clic en Click here! Para abrir el formulario Web Form
registration.aspx para inscribir a un nuevo empleado.
Qu puede observarse? Por qu? Cmo puede solucionarse?
_____________________________________________________________
_____________________________________________________________

Visual Basic .NET
Visual C#
Configurar la seguridad para la pgina register.aspx en el archivo
Web.config
1. Abrir el archivo Web.config del proyecto BenefitsVB o BenefitsCS.
2. Introducir la informacin de configuracin para autorizar a todos los
usuarios a acceder al formulario Web Form register.aspx. Colocar esta
informacin al final del archivo Web.config, justo despus de la etiqueta
</appSettings>, pero antes de la etiqueta </configuration>.
La configuracin debera ser como la siguiente:
<location path="register.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>


Guardar y probar
1. Guardar los cambios.

No es necesario volver a generar el proyecto ya que nicamente
hemos cambiado el archivo Web.config.

2. Abrir un nuevo navegador e ir a http://localhost/BenefitsVB/default.aspx o a
http://localhost/BenefitsCS/default.aspx.
Deberamos ser redirigidos a la pgina login.aspx.
3. Hacer clic en Click here! para abrir el formulario Web Form
registration.aspx e inscribir un nuevo empleado. Deberamos ver ahora el
formulario Web Form register.aspx.
4. Introducir la direccin electrnica y una contrasea para ser agregado a la
base de datos como un nuevo empleado. Hacer clic en Submit.
Seremos redirigidos a la pgina default.aspx, y podremos explorar todas las
pginas.
5. Hacer clic en el enlace Life Insurance y comprobar que la pgina life.aspx
se abre sin solicitar las credenciales.
6. Ir a http://localhost/BenefitsVB/SecurityTest.aspx o a
http://localhost/BenefitsCS/SecurityTest.aspx. Deberamos ver nuestro ID
de empleado y que estamos autenticados con autenticacin basada en
formularios.
7. Cerrar el navegador, abrir un nuevo navegador, e ir a
http://localhost/BenefitsVB/default.aspx o a
http://localhost/BenefitsCS/default.aspx.
8. En la pgina login.aspx, iniciar sesin con las nuevas credenciales.

Nota
Registrarse como empleado nuevo en el sitio Web Coho Winery de un
compaero
1. Abrir un nuevo navegador e ir a
http://Nombreequipocompaero/BenefitsVB/default.aspx o a
http://Nombreequipocompaero/BenefitsCS/default.aspx.
Deberamos ser redirigidos a la pgina login.aspx del sitio Web Coho
Winery del compaero.
2. Hacer clic en Click here! Para abrir el formulario Web Form
registration.aspx y registrarse como nuevo empleado. Deberamos ver el
formulario Web Form register.aspx.
3. Introducir la direccin electrnica y una contrasea para ser agregado a la
base de datos como un nuevo empleado. Hacer clic en Submit.
Ahora, deberamos poder ver todas las pginas del sitio Web Benefits del
compaero.

Ejercicio 4 (si se dispone de tiempo)
Permitir a los usuarios abandonar la sesin
En este ejercicio, agregaremos cdigo a la pgina signout.aspx que permite a
los usuarios abandonar el sitio Web Coho Winery. Cerrar la sesin puede
resultar til cuando un usuario comparte un equipo con otro usuario y desea
asegurarse de que el otro usuario no pueda acceder a informacin privada.
Actualizar el control de usuario header.ascx y agregar el formulario
Web Form signout.aspx
1. Abrir el proyecto BenefitsVB o BenefitsCS en la solucin LabApplication
de Visual Studio .NET.
2. En el Explorador de soluciones, eliminar el control de usuario header.ascx.
Agregar el control de usuario header.ascx y el formulario Web Form
signout.aspx desde la carpeta VB\Starter\BenefitsVB o
CS\Starter\BenefitsCS al proyecto BenefitsVB o BenefitsCS. Estas carpetas
pueden encontrarse dentro del fichero labs14.zip
3. El control de usuario header.ascx actualizado contiene un nuevo enlace
denominado Sign out que abre el formulario signout.aspx.
4. Abrir el formulario signout.aspx. El formulario Web Form contiene
informacin que notifica al usuario que se cerrar su sesin y un botn Sign
Out.
5. Abrir la pgina de cdigo subyacente signout.aspx.vb o signout.aspx.cs y
localizar el siguiente comentario en el procedimiento de evento
cmdSignout_Click:
TODO Lab 14: Implement the signout

6. Escribir el cdigo para cerrar la sesin de los usuarios y redirigirlos al
formulario Web Form login.aspx.
El cdigo debera ser como el siguiente:
FormsAuthentication.SignOut()
Response.Redirect("login.aspx")

FormsAuthentication.SignOut();
Response.Redirect("login.aspx");

Visual Basic .NET
Visual C#
Guardar y probar
1. Guardar los cambios.
2. Generar el proyecto BenefitsVB o BenefitsCS.
3. Abrir un nuevo navegador e ir a http://localhost/BenefitsVB/default.aspx o
http://localhost/BenefitsCS/default.aspx.
Deberamos ser redirigidos a la pgina login.aspx.
4. Introducir la direccin electrnica y una contrasea, y hacer clic en Sign In
Now.
5. Hacer clic en el enlace Life Insurance y comprobar que la pgina life.aspx
se abre sin solicitar nuestras credenciales.
6. Hacer clic en el hiperenlace signout y clic en Sign Out.
Somos redirigidos a la pgina login.aspx.
7. Sin cerrar el navegador, ir de nuevo a
http://localhost/BenefitsVB/default.aspx o a
http://localhost/BenefitsCS/default.aspx. Actualizar el navegador.
Deberamos ser devueltos a la pgina login.aspx.

Vous aimerez peut-être aussi