Informe Final Titulación
Transcript of Informe Final Titulación
UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO
FACULTAD DE CIENCIAS FÍSICAS
Y MATEMÁTICAS
ESCUELA PROFESIONAL DE
INGENIERÍA EN COMPUTACIÓN E INFORMÁTICA
TEMA : PUBLICACION WEB EN ASP.NET
ALUMNO : DÍAZ PUERTA MELISSA DEL PILAR
DIRECTORA
ESCUELA : ING. GIULIANA LECCA ORREGO
MOTIVO : INFORME FINAL CURSO DE TITULACIÓN
Lambayeque, Julio del 2012.
Quiero dedicarle el presente trabajo
a Dios que me ha dado la fuerza
para seguir adelante día a día,
a mi mamá por ser mi mejor amiga,
mi aliada, mi ejemplo mil gracias
por el apoyo en este trabajo.
A mi papá por ser esa imagen de serenidad
y seguridad que siempre deseo tener a mi lado,
a mi hermana por su apoyo incondicional
y constante cooperación en los
momentos más difíciles.
2
Agradecimientos
A mi familia por su comprensión y estímulo constante, además de su apoyo
incondicional a lo largo de mi carrera universitaria.
A los profesores del Curso de Titulación que contribuyeron en mi adquisición de nuevos
conocimientos que van a ser determinantes en el éxito de mi vida profesional.
A todas las personas que de una u otra forma me apoyaron en la realización de este
trabajo.
3
Resumen
Una Página Web es el nombre de un documento o información electrónica adaptada
para la World Wide Web y que puede ser accedida mediante un navegador para
mostrarse en una computadora Cliente o dispositivo móvil. Esta información se
encuentra generalmente en formato HTML o XHTML, y puede proporcionar
navegación a otras páginas Web mediante enlaces de hipertexto. Las páginas Web
frecuentemente incluyen otros recursos como hojas de estilo en cascada, scripts e
imágenes digitales, entre otros.
Las páginas Web pueden estar almacenadas en un equipo local o un servidor web
remoto. El servidor Web puede restringir el acceso únicamente para redes privadas o
puede publicar las páginas en la World Wide Web.
Es en este sentido que el IIS (Internet Information Server) es un servidor web que nos
provee de un conjunto de servicios para el sistema operativo Microsoft Windows.
4
ÍNDICE
CAPITULO I: MARCO TEÓRICO..................................................................................61.- INTERNET INFORMATION SERVICES (IIS).....................................................6
1.1.- VERSIONES DE IIS:.......................................................................................61.2.- ASP – ACTIVE SERVER PAGES:..................................................................71.3.- ASP.NET – ACTIVE SERVER PAGES.NET.................................................7
1.3.1.- CARACTERÍSTICAS...............................................................................71.3.1.1.- PÁGINAS...........................................................................................71.3.1.2.- EL MODELO CODE-BEHIND.........................................................81.3.1.3.- CONTROLES DE USUARIO:...........................................................81.3.1.4.- ESTRUCTURA DE DIRECTORIOS.................................................81.3.1.5.- DIFERENCIAS ENTRE ASP Y ASP.NET........................................9
1.4.- AUTENTICACIÓN EN IIS............................................................................101.4.1.- AUTENTICACIÓN ANÓNIMA.............................................................111.4.2.- AUTENTICACIÓN BÁSICA.................................................................111.4.3.- AUTENTICACIÓN IMPLÍCITA............................................................121.4.4.- AUTENTICACIÓN DE WINDOWS INTEGRADA..............................121.4.5.- AUTENTICACIÓN DE CERTIFICADOS DEL CLIENTE...................13
1.5.- PUBLICACIÓN DE UN SITIO WEB EN EL INTERNET INFORMATION SERVICES..............................................................................................................14
2.- TÉRMINOS Y CONCEPTOS...............................................................................222.1.- WSDL.............................................................................................................222.2.- XML................................................................................................................222.3.- W3C................................................................................................................222.4.- SERVICIO WEB............................................................................................222.5.- HTML.............................................................................................................222.6.- XHTML...........................................................................................................232.7.- COMMON LANGUAGE RUNTIME............................................................232.8.- APLICACIÓN WEB.......................................................................................232.9.- SITIO WEB.....................................................................................................232.10.- MICROSOFT.NET FRAMEWORK............................................................23
CAPITULO II: CONCLUSIONES Y RECOMENDACIONES....................................241.- CONCLUSIONES.................................................................................................242.- RECOMENDACIONES........................................................................................24
BIBLIOGRAFIA.............................................................................................................25LINKOGRAFIA..............................................................................................................25
5
PUBLICACIÓN WEB EN ASP
CAPITULO I: MARCO TEÓRICO
1.- INTERNET INFORMATION SERVICES (IIS)
Internet Information Services es un servidor web que nos provee de un conjunto de
servicios para Windows. Los servicios que ofrece son: FTP, SMTP, NNTP y
HTTP/HTTPS.
Este servicio convierte a una PC en un servidor web para poder almacenar páginas web
en Internet o una intranet, es decir que en las computadoras en las que se encuentra
instalado este servicio pueden publicar páginas web tanto local como remotamente.
Los servicios de Internet Information Services proporcionan las herramientas y
funciones necesarias para administrar de forma sencilla un servidor web seguro.
El servidor web se basa en varios módulos que le dan capacidad para procesar distintos
tipos de páginas, entre los tipos de página que Microsoft puede procesar se encuentran
las Active Server Pages (ASP) y ASP.NET.
1.1.- VERSIONES DE IIS:
IIS 1.0, Windows NT 3.51 Service Pack 3
IIS 2.0, Windows NT 4.0
IIS 3.0, Windows NT 4.0 Service Pack 3
IIS 4.0, Windows NT 4.0 Option Pack
IIS 5.0, Windows 2000
IIS 5.1, Windows XP Professional
IIS 6.0, Windows Server 2003 y Windows XP Profesional x64 Edition
IIS 7.0, Windows Vista (Solo Business y Ultimate) y Windows Server 2008
IIS 7.5, Windows 7 y Windows Server 2008 R2
6
1.2.- ASP – ACTIVE SERVER PAGES:
La tecnología ASP está estrechamente relacionada con el modelo tecnológico de
Microsoft. Intenta ser solución para un modelo de programación rápida ya que
"programar en ASP es como programar en Visual Basic o C#", por supuesto con
muchas limitaciones y algunas ventajas específicas en entornos web.
Lo interesante de este modelo tecnológico es poder utilizar diversos componentes ya
desarrollados como algunos controles ActiveX, liberías Ajax, los cuáles permiten la
interacción de los scripts con el servidor SMTP que integra IIS.
1.3.- ASP.NET – ACTIVE SERVER PAGES.NET
ASP.NET es un entorno de trabajo para aplicaciones web desarrollado, es usado por
programadores para construir sitios web dinámicos, aplicaciones web y servicios web
XML. ASP.NET esta construido sobre el Common Language Runtime, permitiendo a
los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el
.NET Framework (Visual Basic.NET, C#, C++, JScript).
Cualquier persona que esté familiarizada con el desarrollo de aplicaciones web sabrá
que el desarrollo web no es una tarea simple, ya que mientras que un modelo de
programación para aplicaciones de uso común está muy bien establecido y soportado
por un gran número de lenguajes, herramientas de desarrollo, la programación web es
una mezcla de varios lenguajes de etiquetas, un gran uso de lenguajes de script y
plataformas de servidor. Para el programador de nivel intermedio, el conocimiento y las
habilidades que se necesitan para desarrollar aplicaciones web requieren de un mayor
conocimiento tanto de lenguajes de programación, etiquetado y formato (HTML), como
de diversas tecnologías de software relativas al desarrollo distribuido y concurrente, de
las que son necesarias en el desarrollo tradicional de aplicaciones.
1.3.1.- CARACTERÍSTICAS
1.3.1.1.- PÁGINAS
Las páginas de ASP.NET, conocidas como web forms, son el principal medio de
construcción para el desarrollo de aplicaciones web. Los formularios web están
contenidos en archivos con una extensión ASPX, estos archivos típicamente contienen
etiquetas HTML o XHTML estático, y también etiquetas definiendo Controles Web que
se procesan del lado del servidor y Controles de Usuario donde los desarrolladores
colocan todo el código estático y dinámico requerido por la página web.
7
1.3.1.2.- EL MODELO CODE-BEHIND
Microsoft recomienda que para realizar programación dinámica se use el modelo code-
behind, o de respaldo, que coloca el código en un archivo separado o en una etiqueta de
script especialmente diseñada. Los nombres de los archivos code-behind están basados
en el nombre del archivo ASPX por ejemplo: MiPagina.aspx.cs o MiPagina.aspx.vb.
Cuando se usa este estilo de programación, el desarrollador escribe el código
correspondiente a diferentes eventos, como la carga de la página, o el clic en un control,
en vez de un recorrido lineal a través del documento.
El modelo code-behind de ASP.NET marca la separación del ASP clásico y alienta a los
desarrolladores a construir aplicaciones con la idea de presentación y contenido
separados en mente, es decir favorece la Programación por Capas.
1.3.1.3.- CONTROLES DE USUARIO:
ASP.NET permite la creación de componentes reutilizables a través de la creación de
Controles de Usuario. Un control de usuario sigue la misma estructura que un
formulario web, excepto que los controles derivan de la clase
System.Web.UI.UserControl, y son almacenados en archivos ASCX, al igual que los
archivos ASPX, un archivo ASCX contiene etiquetas HTML o XHTML, además de
etiquetas para definir controles web y otros controles de usuario. También pueden usar
el modelo code-behind, es en estos controles en los que podemos agregar sus propias
propiedades, métodos, y manejadores de eventos.
1.3.1.4.- ESTRUCTURA DE DIRECTORIOS
La estructura de directorios de ASP.NET puede ser determinada por las preferencias del
desarrollador, pero en ASP.NET existen directorios especiales, los cuáles son los
siguientes:
App_Browsers
Contiene archivos de definición específicos para los navegadores web.
App_Code
Es un directorio para códigos. El servidor ASP.NET automáticamente compilará los
archivos en esta carpeta en un ensamblado que es accesible desde cualquier página del
sitio.
8
App_Data
Directorio por defecto para las bases de datos, tales como archivos “mdf” de Microsoft
SQL Server. Este directorio es usualmente el único con permisos de escritura en la
aplicación.
App_LocalResources
Esta carpeta contiene archivos de recursos localizados para páginas individuales del
sitio.
App_GlobalResources
Es aquí donde encontramos los archivos “resx” con recursos localizados disponibles
para cada página del sitio. Esta carpeta es en donde el desarrollador ASP.NET
típicamente almacenara mensajes que serán usados en más de una página.
App_WebReferences
Capeta usada para archivos de descubrimiento y archivos WSDL para referencias a
servicios web para ser consumidos en el sitio.
Bin
Carpeta que contiene código compilado es decir archivos .dll para controles,
componentes, y otro código que pueda ser referenciado por la aplicación. Cualquier
clase representada por código en la carpeta Bin es automáticamente referenciada en la
aplicación. Son archivos o librerías que tienen como principal acción ejecutar una
función cuando estas son llamadas o se invocan.
1.3.1.5.- DIFERENCIAS ENTRE ASP Y ASP.NET
En una página web, es habitual escribir una gran cantidad de código para
resolver necesidades sencillas. ASP.NET incorpora un modelo declarativo a la
programación web: los controles de servidor funcionan en una página Web
simplemente declarándolos. Cuando se carga la página ASP.NET, se instancian
los controles listados en la página ASP y es responsabilidad del control emitir
código HTML que el navegador pueda entender.
En ese sentido ASP clásico es un tanto desorganizado, ya que en una página
ASP podemos incluir casi todo: HTML plano, código script, objetos COM y
texto. No hay una distinción formal entre el contenido de una página y su
comportamiento: simplemente, insertamos código en la página, y a ver como
9
funciona esa página. ASP.NET impone un cierto orden sobre el modelo de
programación estándar ASP. En cierto modo, esta "desorganización" puede
evitarse fácilmente usando el sentido común y algunas de las nuevas tecnologías.
La tercera limitación en el desarrollo con ASP es que con el tradicional
utilizamos lenguajes como VBScript o JScript, ese sentido ASP.NET separa
claramente la porción basada en script de una página web de su contenido.
ASP.Net, puede decirse que es un nuevo nivel de abstracción en la construcción
de sitios web, por que se pueden crear rápidamente aplicaciones web, basándose
en los controles incluidos en el framework, ocultando el código de mucho,
además ASP.NET incluye una gran herramienta para la construcción de reportes,
y esto incluyen medios automáticos para exportarlos a XLS o PDF, y de igual
forma incluye CrystalReport.
ASP.NET permite la creación de mejores interfaces de usuario gracias a la
creación de páginas con AJAX.
1.4.- AUTENTICACIÓN EN IIS
Una parte importante de muchas aplicaciones distribuidas es la capacidad de identificar
a alguien, conocido como cliente, y controlar el acceso de este cliente a los recursos.
En ese sentido la autenticación es el acto de validar la identidad de un usuario o cliente.;
en general, los clientes deben presentar algún tipo de pruebas, conocido como
credenciales, que indique quién es para la autenticación. Normalmente, las credenciales
incluyen una combinación de nombre de usuario y contraseña. Tanto Internet
Information Services (IIS) como ASP.NET proporcionan varios esquemas de
autenticación.
IIS proporciona una gran variedad de formas de autenticación:
Anónima
Básica
Implícita
Autenticación de Windows Integrada
Asignar Certificados de Cliente
10
A continuación una breve explicación de cada uno de los Tipos de autenticación en IIS.
1.4.1.- AUTENTICACIÓN ANÓNIMA
La autenticación anónima proporciona a los usuarios acceso a áreas públicas de un sitio
Web pidiéndoles un nombre de usuario y una contraseña; aunque se incluye en la lista
de esquemas de autenticación, técnicamente no lleva a cabo una autenticación de cliente
porque no se le pide a éste que proporcione credenciales. En su lugar, IIS proporciona
las credenciales almacenadas a Windows utilizando una cuenta de usuario especial,
IUSR_”NombrePC”. Por defecto IIS controla la contraseña de esta cuenta, si IIS
controla o no la contraseña afecta a los permisos que tiene el usuario anónimo.
Ventajas
Ofrece mejor rendimiento porque la autenticación anónima no impone una
sobrecarga apreciable.
No requiere administración de cuentas de usuario concretas.
Si IIS no controla la contraseña, puede tener acceso a recursos de red.
Desventajas
No autentica clientes individualmente.
Si IIS no controla la contraseña, la cuenta debe tener la capacidad de un inicio de
sesión local.
1.4.2.- AUTENTICACIÓN BÁSICA
IIS implementa la autenticación básica, la cuál forma parte de la especificación HTTP
utilizando las cuentas de usuario de Windows. Cuando se utiliza la autenticación básica,
el explorador solicita al usuario un nombre y una contraseña. Esta información se
transmite a través de HTTP, donde se codifica; aunque la mayoría de los servidores
Web, servidores proxy y exploradores Web admiten la autenticación básica, es
intrínsecamente insegura. Puesto que es fácil descodificar los datos
Ventajas
Es la forma de autenticación básica de usuario es el más admitido.
Puede autenticarse a través de un servidor Proxy.
Puede tener acceso a recursos de red, si la cuenta de usuario tiene derechos de
inicio de sesión en el Servidor Web.
11
Desventajas
Requiere la creación de cuentas de Windows individuales para cada usuario.
1.4.3.- AUTENTICACIÓN IMPLÍCITA
La autenticación implícita corrige los principales puntos débiles de la autenticación
básica, es decir mejora el envío de contraseñas en texto sin formato. Se trata de un
mecanismo de desafío/respuesta, que envía un hash en lugar de una contraseña a través
de la red. Un hash o digest es un resultado de tamaño fijo obtenido al aplicar un
algoritmo a una cantidad de datos arbitraria. Cuando un cliente intenta tener acceso a un
recurso y requiere autenticación implícita, IIS envía un desafío al cliente para crear un
digest y enviarlo al servidor. En sí, la autenticación implícita es sólo una pequeña
mejora de la autenticación básica. Ante la ausencia de SSL/TLS, un atacante podría
grabar la comunicación entre el cliente y el servidor.
Ventajas
Envía un digest a través de la red en lugar de una contraseña.
Funciona con servidores Proxy y servidores de seguridad.
Desventajas
No puede delegar credenciales de seguridad.
Sólo es compatible con Internet Explorer 5.0 y posterior.
Está expuesto a que un atacante reproduzca las transacciones
Requiere la creación de cuentas de dominio para cada usuario en Active
Directory.
1.4.4.- AUTENTICACIÓN DE WINDOWS INTEGRADA
La autenticación de Windows integrada puede utilizar sólo con Internet Explorer 2.0 y
posterior.
La autenticación de Windows integrada es el mejor esquema de autenticación en un
entorno de intranet donde los usuarios tienen cuentas de dominio de Windows. Este tipo
de autenticación, al igual que la autenticación implícita, no pasa la contraseña de
usuario a través de la red. En su lugar, se intercambia un valor al que se ha aplicado una
función hash.
12
Ventajas
Permite la delegación de credenciales de seguridad.
Es el mejor esquema para entornos de intranet que utilizan Windows.
Desventajas
Sólo es compatible con Internet Explorer 2,0 y posterior.
Es compatible únicamente con IIS 5.0 y posterior.
1.4.5.- AUTENTICACIÓN DE CERTIFICADOS DEL CLIENTE
Un certificado es una instrucción firmada digitalmente que contiene información sobre
una entidad y su clave pública, enlazando estos dos datos. Una organización de
confianza denominada entidad emisora genera un certificado después de comprobar que
la entidad es quien dice que es. Los certificados pueden contener distintos tipos de
datos.
Ventajas
Incluye un eficaz esquema de autenticación.
Proporciona autenticación en ambos sentidos entre el servidor y el cliente.
Puede tener acceso a recursos de red.
Desventajas
No puede delegar credenciales de seguridad.
No funciona con todos los exploradores.
13
1.5.- PUBLICACIÓN DE UN SITIO WEB EN EL INTERNET INFORMATION
SERVICES
Para realizar la publicación de un Sitio Web, debemos de seguir los siguientes pasos:
a) Primero podemos observar que no Existe ningún Sitio Web denominado:
ProyMelissa
b) Si se intenta acceder a la siguiente dirección URL:
http://localhost/ProyMelissa/OrigenA.aspx desde Internet Explorer, aparecerá el
siguiente mensaje
14
g) Aparecerá la siguiente ventana
h) Dejamos marcada la primera opción y hacemos clic en el botón examinar
17
i) Seleccionamos la ruta en donde deseamos realizar la Publicación
j) Hacemos clic en el botón Aceptar
18
k) Como podemos observar se realizaron con éxito las acciones
l) Como podemos observar en el IIS, aparecerá una carpeta con el Nombre:
ProyMelissa
19
m) Hacemos anticlick en la carpeta ProyMelissa, y seleccionamos Propiedades
n) Hacemos clic en Crear y luego en Aplicar y Aceptar
20
o) Como podemos observar el icono de ProyMelissa ha cambiado
p) Abrimos una página de Internet Explorer y escribimos la siguiente dirección:
http://localhost/ProyMelissa/OrigenA.aspx y como podemos observar que se
muestra la página web correctamente
q) Con lo cuál podemos observar que la publicación se ha dado con éxito
21
2.- TÉRMINOS Y CONCEPTOS
2.1.- WSDL
WSDL describe la interfaz pública a los Servicios Web, está basado en XML y describe
la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los
mensajes necesarios para interactuar con los servicios web. Las operaciones y mensajes
que soporta se describen en abstracto y se ligan después al protocolo concreto de red y
al formato del mensaje.
2.2.- XML
XML es un lenguaje que permite definir la gramática de lenguajes específicos para
estructurar documentos grandes. A diferencia de otros lenguajes XML da soporte a
bases de datos, siendo útil cuando varias aplicaciones se deben comunicar entre sí o
deben de integrar la información.
2.3.- W3C
W3C es un consorcio internacional que produce recomendaciones para la World Wide
Web.
2.4.- SERVICIO WEB
Es una Tecnología que utiliza un conjunto de protocolos y estándares que sirven para
intercambiar datos entre aplicaciones, estas aplicaciones pueden haber sido
desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier
plataforma, pueden utilizar los servicios web para intercambiar datos en Internet. La
comunicación e interoperabilidad se consigue a través de estándares de la W3C.
2.5.- HTML
HTML es un lenguaje predominante para la elaboración de páginas web que se utiliza
para describir la estructura y el contenido en forma de texto, así como para
complementar el texto con objetos tales como imágenes.
22
2.6.- XHTML
XHTML es básicamente HTML expresado como XML válido. Es más estricto a nivel
técnico, pero esto permite que posteriormente sea más fácil al hacer cambios o buscar
errores entre otros. Su objetivo es avanzar en el proyecto del W3C de lograr una web
semántica, donde la información, y la forma de presentarla estén claramente separadas.
2.7.- COMMON LANGUAGE RUNTIME
El CLR es un entorno de ejecución para los códigos de los programas que corren sobre
la plataforma Microsoft .NET. El Common Language Runtime es el encargado de
compilar una forma de código intermedio conocido como MSIL (Microsoft
Intermediate Language).
2.8.- APLICACIÓN WEB
Una Aplicación Web son aquellas herramientas que los usuarios pueden utilizar
accediendo a un Servidor Web a través de Internet o de una red local mediante un
navegador; crea una sola solución la cuál almacena una mapa de todos los archivos de la
aplicación, además crea un único ensamblado.
2.9.- SITIO WEB
Un sitio web es una colección de páginas web relacionadas y comunes a un dominio de
Internet o subdominio en la World Wide Web en Internet; crea una carpeta que contiene
todos los archivos de la aplicación además construye muchos ensamblados.
2.10.- MICROSOFT.NET FRAMEWORK
Microsoft.NET Framework son un conjunto de componentes softwares que pueden ser
adicionado al sistema operativo Windows y nos provee un extenso conjunto de
soluciones predefinidas para necesidades generales de la programación de aplicaciones,
también administra la ejecución de los programas escritos específicamente con la
plataforma.
23
CAPITULO II: CONCLUSIONES Y RECOMENDACIONES
1.- CONCLUSIONES
Aunque en un principio puede parecer un poco complicado, merece la pena el esfuerzo
del levantamiento de un Servidor Web con IIS, ya que las distintas maneras existentes
de cómo configurar este Servidor nos pueden traer muchos beneficios.
Al levantar un Servidor Web con IIS podemos mejorar significativamente el
rendimiento de nuestras aplicaciones, y mejorar la escalabilidad del sistema.
Un Servidor IIS desarrolla y es compatible con las aplicaciones beneficiándose con un
único entorno de alojamiento de aplicaciones integrado con total compatibilidad.
2.- RECOMENDACIONES
Se recomienda que, para mantener las recomendaciones de seguridad normal, la cuenta
de usuario que se utiliza para acceder al recurso compartido debe tener los privilegios
mínimos posibles.
Para la creación de cualquier sitio Web o directorio virtual con un recurso compartido,
se recomienda no utilice ninguna cuenta con permisos administrativos.
Ya que el IIS es una plataforma de servicios múltiples, una recomendación para reducir
radicalmente los ataques, debe de eliminar los servicios de dicha plataforma que no se
utilizan, puesto que es muy sabido que por ejemplo un servidor SMTP mal configurado
puede dedicar la mayor parte de los servicios de su sistema operativo a enviar SPAM.
Se recomienda desactivar la opción de mensajes de error detallados, si bien durante la
programación esta opción es de gran ayuda, mantenerla activa al publicar el Sitio Web,
solo sirve para que un atacante intente generar errores que le entreguen información
adicional y le descubran algún dato que abra la brecha de seguridad esperada.
24
BIBLIOGRAFIA
1) Luis Miguel Blanco, Programación en Visual Basic.NET 2008
2) Matthew MacDonal, ASP.NET : Manual de Referencia
3) Jorge Serrano Pérez, Programación con ASP.NET
4) Fernando Giardina, ASP.NET: Guía de Desarrollo de Sitios y Aplicaciones Web
Dinámicas
5) Visual Studio.NET Tutoriales, Microsoft Corporation
LINKOGRAFIA
1) http://msdn.microsoft.com/es-es/asp.net/centrum-asp-net.aspx
2) http://msdn.microsoft.com/es-es/library/t745kdsh%28v=vs.90%29.aspx
3) http://msdn.microsoft.com/es-es/library/aa292114%28v=VS.71%29.aspx
4) http://msdn.microsoft.com/es-es/library/1y1404zt%28v=vs.80%29.aspx
25