ASP.NET - Universidad de Oviedo

Anuncio
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Cod. 1728.61
PLATAFORMA .NET Y
SERVICIOS WEB
ASP.NET
Juan Ramón Pérez Pérez
[email protected]
Dpto. de Informática
OOTLab - Laboratorio de Tecnologías de Orientación a Objetos
http://www.ootlab.uniovi.es
Qué veremos en esta conferencia
Desarrollo de aplicaciones web.
Necesidad de páginas web dinámicas ASP.
Qué aporta ASP.NET.
Desarrollo y ejecución de una aplicación
ASP.NET.
• Configuración descentralizada.
• Administración de sesiones y seguridad.
• Referencias para seguir trabajando.
•
•
•
•
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
La web se queda pequeña (I)
• La Web se pensó para páginas estáticas.
Explorador
del cliente
1. Usuario
Página 2
realiza
petición
4. Explorador
muestra página
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Servidor
2. Explorador
envía petición
al servidor
Página 1
Página 2
Página N
3. Servidor
envía página
solicitada al
cliente
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
La web se queda pequeña (II)
• El servidor debe generar páginas
Servidor
dinámicas.
Explorador
del cliente
1. Usuario
Página
realiza
generada
petición
4. Explorador
muestra página
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
2. Explorador
envía petición
al servidor
BD
Lógica
Generación
Página
4. Servidor
envía página
solicitada al
3. Lógica servidor
cliente
genera página
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
La web se queda pequeña (y III)
• Qué necesitamos para que esto funcione:
– Asociar una lógica de programación a la generación de
páginas.
– Proporcionar una forma fácil de leer la entrada del
usuario (formulario) para pasársela a la lógica del
programa.
– Proporcionar una forma sencilla de generar la salida
(página en HTML).
– Infraestructura de seguridad.
– Mecanismo de administración de sesiones.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Páginas ASP
• Entorno de Microsoft para general páginas
web dinámicas.
• Páginas combinan HTML con instrucciones
en lenguaje script que se interpreta en el
servidor.
• Internet Information Server (IIS).
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Ejemplo página ASP
• Servidor copia literalmente la parte HTML e
interpreta los elementos <% %>
<html>
<head>
<title>Fecha y hora actuales</title>
</head>
<body>
<h1>Pagina con la fecha y hora actuales</h1>
Son las <% =time %> del día <% =date %>
</body>
</html>
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Algunos inconvenientes de ASP
• Microsoft no proporcionaba ningún entorno que
permitiera trabajar de forma sencilla con ASP.
• Aparecía en la misma página el código HTML
junto con el código de script.
• Normalmente se usaban lenguajes de script no
tipados.
• El tratamiento de entrada y salida era bastante
tedioso.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
ASP.NET desarrollo (I)
• Microsoft abstrae el modelo de programación de
ASP en la web, para que se parezca al desarrollo
de una aplicación de escritorio.
• Así como en Delphi o VB disponemos de fichas,
en ASP vamos a disponer de formularios web
(Web Forms).
• Separa HTML de la lógica del programa, Código
en segundo plano. Podemos utilizar cualquier
lenguaje de la plataforma.
• Disponemos de un entorno de desarrollo.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
ASP.NET desarrollo (y II)
• Controles del servidor (Web Forms Server
Controls). Componentes que se encargan
de la entrada y salida y que se incorporan
sobre el Formulario web.
• Soporte para implementar la seguridad del
sitio web.
• Soporte para la administración de sesiones.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
ASP.NET Ejecución
• ASP.NET es parte del entorno .NET (.NET
framework):
– La ejecución utiliza el soporte del CLR (Common
Language Runtime).
– El Código en Segundo plano se compila al código
intermedio de MS (MS-IL).
– ASP.NET utiliza las ventajas de la plataforma
multilenguaje, con la Biblioteca de clases común (BCL)
y el sistema de tipos comunes (CTS).
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
ASP.NET Instalación
• Al pertenecer al entorno .NET
– Instalación, los componentes no tienen que
registrarse.
– Configuración, mediante ficheros XML
descentralizados.
– Actualización, permite la actualización “en
caliente” sin parar el servidor web.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Desarrollo de una aplicación web con
ASP.NET
• Utilizar el Visual Studio .NET.
• Análogo a una aplicación en Delphi o VB:
– Formularios web para las distintas páginas.
– Se arrastran los distintos controles al
formulario.
– Se establecen las propiedades de los controles.
– El código se añade como controladores de
eventos de los controles.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Ficheros básicos de una página
ASP.NET
• Ficheros .aspx. Formulario web con sus
controles. Contiene el código de la página
ASP.NET sobre la que se hace la petición.
• Ficheros .aspx.vb. Contiene el código
subyacente de controladores de eventos de
los controles web.
WebForm1.aspx
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
WebForm1.aspx.vb
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Controles de Web
• Un control de Web en el contexto de
ASP.NET, es cualquier tipo de lógica de
programación relacionada con la interfaz de
usuario que es capaz de:
– Exponer un modelo de programación estándar
a un entorno de desarrollo.
– Reflejar su aspecto en HTML para su
presentación en un explorador estándar.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Controles de Web frente a controles
HTML
• Controles de HTML:
– no son muy numerosos ni tienen mucha funcionalidad.
– Es difícil escribir código que interactúe con los
controles.
• Controles de web:
– Permiten utilizar un modelo de programación dirigido a
eventos.
– Se integran mejor en entornos de desarrollo
– Abstraen diferencias entre exploradores diferentes.
– Se adaptan al explorador que utilice el usuario en
tiempo de ejecución.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Ejecución de una página ASP.NET
Sistema de ejecución
1. Petición
página ASPX
desde el cliente
IIS
7. HTML
Resultado
2. Petición al
Sistema de
ejecución
Página
ASPX
Objeto de
Código
subyacente
(MS-IL)
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
3. Compila página ASPX
la primera vez.
4. Carga clase
compilada y crea objeto
del código subyacente.
5. El objeto de código
subyacente crea
controles y estos
generan su
representación en
HTML.
6. Devolver HTML al IIS.
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Datos devueltos y estado de vista
• Datos devueltos (postback data). Los
controles de entrada recuerdan el estado
que tenían cuando el usuario los envío al
servidor.
• Estado de vista (view state). Los controles
de presentación recuerdan el estado en que
los dejó el programa en la vuelta anterior.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Configuración de la aplicación web
• ASP.NET como el resto de la plataforma .NET
cambia el enfoque con los anteriores
planteamientos de MS.
• Antes se guardaba la información de
configuración en el registro del sistema.
• Ahora se adopta un enfoque descentralizado:
cada aplicación almacena la información de
configuración en un fichero XML llamado
web.config.
web.config
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Jerarquía de ficheros web.config
• Puede haber ficheros web.config en
diferentes subdirectorios.
• Cada uno gobierna la operación de las
páginas dentro de su subdirectorio y los
directorios inferiores a menos que se anule.
• El fichero maestro que especifica los
valores predeterminados del sistema se
denomina machine.config.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Sesiones en ASP.NET. El problema.
• Cuál es el problema:
– HTTP es un protocolo sin estado, de peticiónrespuesta.
– El sistema trata las peticiones de forma aislada.
– En las aplicaciones web actuales este modelo es
insuficiente: no es posible resolver toda la transacción
en un paso.
– Además debemos tener una sesión independiente para
cada usuario.
• Necesitamos un mecanismo que nos ayude a
administrar sesiones.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Administración de sesiones en
ASP.NET
• Tecnologías para simular sesiones en una
aplicación web:
– Cookies
– Utilizar la URL
• ASP.NET hace que esto sea transparente al
programador.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Administración de sesiones en
ASP.NET. Objeto Session.
Objeto Session.
Permite almacenar valores de tipo cadena
identificadas por un nombre.
• Estos valores se pueden leer de forma sencilla.
• Cada una de las páginas contiene una propiedad
denominada Session que permite acceder al
objeto Session del usuario actual.
•
•
WebForm1.aspx.vb
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
WebForm2.aspx.vb
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Administración de sesiones en
ASP.NET. Objeto Session.
2. El servidor recibe
petición, crea el objeto
Session y envía cookie
al cliente.
Explorador del cliente
1. El cliente solicita la
primera página
3. El programa almacena
datos en el objeto
Session.
Cookie
4. El cliente solicita otra
página (pasa la cookie).
7. El cliente recibe la
nueva página en
función de la primera.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Servidor
Datos
usuario 1
Datos
usuario n
5. El servidor obtiene el
objeto Session
identificado por la
cookie.
6. El programador
recupera datos del
Objeto Session
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Seguridad ASP.NET
• Seguridad vital para cualquier aplicación y
más para aplicaciones distribuidas.
• En una aplicación web hay zonas públicas y
privadas.
• ASP.NET proporciona mecanismos para:
– Autentificar el usuario
– Comprobar la autorización
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Autenticación
• Quién es el usuario y asegurar que
realmente es quien dice ser.
• Usuario no identificado acceso a la parte
pública.
• Modos de autenticación:
– Autenticación de Windows.
– Autenticación basada en formularios.
– Autenticación de Passport.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Autenticación de Windows
• Delega el proceso de autenticación en el
IIS.
• El IIS muestra un cuadro de diálogo en el
que el usuario introduce su identificación y
contraseña de Windows.
• Adecuada para una intranet de Windows,
cuando sabemos a priori el dominio de
usuario que tiene la aplicación.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Autenticación basada en formularios
• La aplicación web proporciona al usuario una
forma de registrarse.
• Para entrar en la parte privada del sitio se pide al
usuario que introduzca usuario y contraseña.
• Permite la entrada si coinciden con los
registrados.
• Se identifica al usuario autenticado mediante una
cookie.
• Este tipo de autenticación se configura mediante
una entrada en el fichero web.config.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Autenticación de Passport
• Problema de la autenticación a través de
formularios: cada sitio web tiene su usuario y
contraseña y hay que recordarlas todas.
• Con .net Passport el usuario se registra en
Passport y cuando las aplicaciones web necesitan
autenticar a un usuario utilizan passport como
intermediario.
• En realidad el usuario sólo tiene que recordar su
usuario y contraseña en Passport.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Autenticación de Passport (y II)
• Se puede almacenar información asociada a un
usuario: dirección, nº tarjeta.
• Así se pueden automatizar la acción de rellenar
formularios de entrega.
• Cómo establecer este tipo de autenticación:
–
–
–
–
Firmar la licencia con Microsoft para utilizar Passport.
Descargar y utilizar el SDK de Passport.
Establecer el fichero web.config.
Escribir el código correspondiente.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Autorización
• Según el usuario que sea decidir si se debe
permitir que vea la página que solicita.
• En ASP.NET se puede limitar de forma declarativa
el acceso a página en el fichero web.config.
• Sección: <authorization>.
• Elementos: <allow> y <deny>.
• Se puede especificar por usuario o por grupo.
• ? usuarios anónimos. * todos los usuarios.
web.config
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Implementación real de la
Autorización
• Normalmente se realizan autorizaciones a nivel de
grupo.
• Cuando se realiza autenticación de Windows los
grupos coinciden con los del S.O.
• Cuando se realiza otro tipo de autenticación hay
que escribir código.
• Se escribiría una clase con la interfaz IPrincipal,
que incluye el método IsInRole.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
El problema de la identidad
• Las páginas de un sitio web en las que
controlamos el acceso representan un nivel
intermedio en un sistema de tres niveles.
• El tercer nivel es el nivel de datos que
normalmente posee sus propios mecanismos se
seguridad.
• Para poder realizar las operaciones dependemos
de lo que el nivel de datos considere que es la
identidad del usuario que realiza la petición de
servicios.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Identidad en ASP.NET
• Modelo de usuario de confianza. Se asigna una
identidad para acceder al nivel de datos que
permita realizar determinadas operaciones.
• Elemento <identity> del fichero web.config.
• Modelo delegación de personalidad. El código
de la página adopta la identidad del usuario
autenticado.
• Es necesario hacer dos autenticaciones.
• Elemento <impersonation> de web.config.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Administración de procesos
• Una de las características que deben de tener las
aplicaciones web es que funcionen 24 horas al día
/ 365 días al año.
• Las aplicaciones deben de ser robustas.
• ASP.NET permite reciclado de procesos.
ASP.NET apaga el proceso e inicia uno nuevo.
• Elemento <processModel> del fichero
machine.config.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Temas relacionados
•
•
•
•
ADO.NET.
XML.
ADO.NET.
Servicios Web / SOAP.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Bibliografía
Así es Microsoft .NET. David S. Platt. McGraw-Hill
Profesional.
Professional ASP.NET 1.0. Richard Anderson et
al. Wrox.
Building web solutions with ASP.NET and
ADO.NET. Dino Esposito. Microsoft Press.
Programming ASP.NET. Jesse Liberty and Dan
Hurwitz. O’Really.
Beginning ASP.NET Using VB.NET. Chris Ullman,
et al. Wrox.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Referencias en la web
Web oficial de ASP.NET. http://www.asp.net/
ASP.NET. Xavier Pey. Ethek & Friends.
http://www.ethek.com/contenido.asp?IDContenido=97
Tutorial ASP.NET.
http://www.w3schools.com/aspnet/default.asp
Passport http://www.passport.com
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
ASP.NET
Juan Ramón Pérez Pérez - OOTLab
Descargar