SlideShare una empresa de Scribd logo
1 de 36
Programación orientada a la red Introducción a la programación orientada a la red Establecer credenciales Envío de correos Introducción a las aplicaciones distribuidas Creación y consumo de servicios Web XML Construcción de servicios y clientes WCF (Windows Communication Foundation)
Programación orientada a la red Introducción a la programación orientada a la red El espacio de nombres System.Net La clase WebClient Las clases WebResponse y WebRequest La clase Dns
Introducción a la programación orientada a la red Provee al desarrollador de .NET un interfaz de programación sencillo para el acceso a los protocolos comunes. Clases relacionadas del espacio de nombres System.Net Programación orientada a la red
Programación orientada a la red La clase WebClient Suministra métodos comunes para enviar datos a y/o recibir datos de un recurso identificado mediante una URI Utiliza la clase WebRequest para proveer de acceso a los recursos [Visual C#] WebClient cliente = new WebClient ();  Stream data = cliente.OpenRead((“http://www.contoso.com”); [Visual Basic] Dim cliente AsNew WebClient() Dim data As Stream = cliente.OpenRead(“http://www.contoso.com”)
Programación orientada a la red Las clases WebResponse y WebRequest Se utilizan para acceder a datos de Internet Son clases abstractas Permiten transacciones que sean agnósticas con respecto al protocolo El método GetResponse invocará a la clase Response específica del protocolo [Visual C#] WebRequest peticion = WebRequest.Create("http://www.contoso.com"); // Devuelve la respuesta.  WebResponse respuesta = peticion.GetResponse(); [Visual Basic] Dimpeticion As WebRequest = WebRequest.Create("http://www.contoso.com") ' Devuelve la respuesta.  Dimrespuesta As WebResponse = peticion.GetResponse()
Programación orientada a la red La clase DNS Es una clase estática que recupera información del servidor de nombres de dominio. Devuelve los datos como objetos de la clase IPHostEntry. Si un host tiene varias direcciones IP, devolverá una colección. [Visual C#] IPHostEntry informacionHost = Dns.GetHostByName("www.contoso.com"); [Visual Basic] DiminformacionHost As IPHostEntry = Dns.GetHostByName("www.contoso.com")
Programación orientada a la red Estableciendo credenciales La clase CredentialCache La clase NetworkCredential
Programación orientada a la red La claseCredentialCache Las aplicaciones que necesiten acceder a múltiples recursos pueden almacenar las credenciales para dichos recursos en una instancia de la clase CredentialCache [Visual C#] CredentialCache unaCache = new CredentialCache();  unaCache.Add(new Uri("http://www.contoso.com/"),"Basic",new  NetworkCredential(Usuario,ContraseñaAlmacenada));  [Visual Basic] Dim unaCache AsNew CredentialCache()  unaCache.Add(New Uri("http://www.contoso.com/"), "Basic", New NetworkCredential(Usuario,ContraseñaAlmacenada))
Programación orientada a la red La clase NetworkCredential Provee credenciales para las autentificaciones basadas enbasic, digest, NTLM y Kerberos [Visual C#] NetworkCredential credencial = new NetworkCredential(Usuario,Contraseña,Dominio);  CredentialCache unaCache = new CredentialCache();  unaCache.Add(new Uri("www.contoso.com"), "Basic", credencial);  unaCache.Add(new Uri("app.contoso.com"), "Basic", credencial);  WebRequest wr = WebRequest.Create("www.contoso.com");  wr.Credentials = unaCache; [Visual Basic] DimcredencialAs New NetworkCredential(Usuario,Contraseña,Dominio)  DimunaCacheAs New CredentialCache()  unaCache.Add(New Uri("www.contoso.com"), "Basic", credencial) unaCache.Add(New Uri("app.contoso.com"), "Basic", credencial)  Dim wr As WebRequest = WebRequest.Create("www.contoso.com") wr.Credentials = unaCache
Programación orientada a la red Envío de correos La clase MailMessage Montando el mensaje Envío del mensaje
Programación orientada a la red La clase MailMessage Representa un mensaje de email que puede ser enviado utilizando la clase SmtpClient.
Programación orientada a la red Montando un mensaje [Visual C#] MailMessage correo = new MailMessage(); // Establece la dirección correo.From =  new MailAddress("pepito@ibis.es") ; correo.To.Add("juanito@ibis.es") ; // Establece el contenido correo.Subject = "Esto es un correo" ; correo.Body = "Cuerpo de ejemplo con código html embebido. <b>Esto está en negrita</b> <font color=#336699>Esto es azul</font>"; correo.IsBodyHtml = true; Para construir un mensaje es necesario definir una instancia de la clase MailMessage y establecer las propiedades requeridas [Visual Basic] 'create the mail message Dimcorreo As New MailMessage()  ' Establece la dirección correo.From =  New MailAddress(" pepito@ibis.es ")  correo.To.Add(" juanito@ibis.es ")  ' Establece el contenido correo.Subject = " Esto es un correo "  correo.Body = "Cuerpo de ejemplo con código html embebido. <b>Esto está en negrita</b> <font color=#336699>Esto es azul</font>"  correo.IsBodyHtml = True
Programación orientada a la red Envío del mensaje Para enviar el mensaje hay que establecer: La clase SmtpClient El servidor SMTP a utilizar, mediante la propiedad host. Las credenciales para la autentificación, si lo requiere el servidor SMTP, establecido en la propiedad Credentials.  La dirección e-mail del remitente, en la propiedad From.  La dirección o direcciones del o de los destinatario(s), en la propiedad To.  El contenido, en la propiedad Body.  [Visual C#] SmtpClient smtp = new SmtpClient("mail.smtpserver.com") ; smtp.Credentials = new System.Net.NetworkCredential("usuario", "contraseña"); smtp.Send(mail); [Visual Basic] Dim smtp As New SmtpClient("mail.smtpserver.com")  smtp.Credentials = New System.Net.NetworkCredential("usuario", "contraseña")  smtp.Send(mail)
Introducción a las aplicaciones distribuidas ¿Qué son las aplicaciones distribuidas?  Opciones de creación de una aplicación distribuida ¿Qué son los protocolos y estándares de servicios Web? Las aplicaciones distribuidas y la seguridad Programación orientada a la red
¿Qué son las aplicaciones distribuidas? Programación orientada a la red 2-capas 3-capas N-capas
Opciones de creación de aplicaciones distribuidas Programación orientada a la red ASMX WSE Remoting WCF EnterpriseServices Messaging
¿Qué son los protocolos y estándares de servicios Web? HTTP XML XML Schema SOAP WSDL Programación orientada a la red
Las aplicaciones distribuidas y la seguridad Autentificación IIS security Autorización ASP.NET security Web services security Remoting security Enterprise service security Comunicación segura Windows security Programación orientada a la red
Creación y consumo de servicios Web XML ¿Qué es un servicio Web XML? ¿Cómo crear un servicio Web XML ? ¿Cómo descubrir un servicio Web XML? ¿Cómo consumir un servicio Web XML? ¿Cómo pasar objetos hacia y desde un servicio Web XML ?  ¿Cómo desplegar un servicio Web XML ? Programación orientada a la red
¿Qué es un servicio Web XML? Aplicación cliente Servidor web Petición SOAP sobre HTTP [WebMethod] Respuesta SOAP sobre HTTP Proceso de la petición Programación orientada a la red
¿Cómo crear un servicio Web XML? Crear un nuevo servicio Web utilizando la plantilla ASP.NET Web service. 1 Especificar la ubicación, lenguaje y nombre par el servicio Web 2 Suministrar metadatos en el atributo WebService para la clase parcial oculta 3 Añadir métodos en la clase parcial oculta 4 Programación orientada a la red
¿Cómo descubrir un servicio Web XML? Crear una aplicación cliente 1 Añadir una referencia hacia un servicio Web existente 2 Revisar los métodos en la clase proxy generada 3 Programación orientada a la red
¿Cómo consumir un servicio Web XML? Para llamar a un servicio Web XML desde una aplicación cliente .NET, cree una instancia de la clase proxy que represente al servicio Web e invoque después los métodos Web del objeto proxy [Visual C#] // Servicio Web. [WebMethod] public Cliente efectuarPago(double importeTransaction, Cliente clientePagador)     { returnclientePagador.efectuarPago(importeTransaction); } // Aplicación cliente. unCliente = miServicioWeb. efectuarPago(importe, unCliente); [Visual Basic] ' Servicio Web. <WebMethod()> _ Public Function efectuarPago (ByVal importeTransaction As Double,  _    ByVal clientePagador As Cliente) As Cliente ReturnclientePagador.efectuarPago(importeTransaction) End Function ' Aplicación cliente. unCliente = miServicioWeb.efectuarPago(importe, unCliente) Programación orientada a la red
¿Cómo pasar objetos desde y hacia un servicio Web XML?   Los servicios Web XML usan serialización XML de implícitamente [Visual C#] [WebMethod] public string nombreCliente()  { return Cliente.Nombre; } . . . using SalesApplication.SalesWebService ;  // Crea una instancia de la clase proxy. Service miServicioWeb = new Service();  // Invoca el método Web. miServicioWeb.nombreCliente();  [Visual Basic]  <WebMethod()> _ Public Function nombreCliente() As String  Return Cliente.Nombre End Function  . . . Imports SalesApplication.SalesWebService ' Crea una instancia de la clase proxy. DimmiServicioWeb As Service = New Service()  ' Invoca el método Web. miServicioWeb.nombreCliente() Programación orientada a la red
Seguridad en los servicios Web XML Opciones de autentificación para asegurar servicios Web: ,[object Object]
Windows Basic over SSL
Windows Digest
Windows Integrated
Windows Client Certificates
FormsMétodos de autorización para asegurar servicios Web: ,[object Object]
Autorización  de URLProgramación orientada a la red
¿Cómo desplegar un servicio Web XML? Servidores Web Internet Information Service  Directorios virtuales Abrir el cuadro de diálogo de publicación de sitio Web 1 Configurar las opciones de despliegue 2 Publicar el servicio Web 3 Programación orientada a la red
Construyendo servicios y clientes WCF Modelo de servicios WCF Interoperabilidad de WCF Modelo de seguridad de WCF Contratos de WCF ¿Cómo implementar un contrato de servcio WCF?  Opciones de hospedaje de un servicio WCF Archivo de configuración de WCF Enlaces de WCF Clientes de WCF Programación orientada a la red
Modelo de servicios WCF Programación orientada a la red Servicio Cliente Dirección Enlace Contrato Endpoint Endpoint
Interoperabilidad WCF Características principales de interoperabilidad de WCF Programación orientada a la red
Modelo de seguridad de WCF Características del modelo de seguridad de WCF: Los enlaces de WCF son seguros por defecto, excepto BasicHttpBinding El modo de seguridad puede ser Transport, Message, o TransportWithMessageCredential La autorización se realiza mediante reclamaciones y credenciales para determinar identidades Se auditan los éxitos y fallos de identificación Programación orientada a la red

Más contenido relacionado

La actualidad más candente

La actualidad más candente (15)

Servicios web
Servicios webServicios web
Servicios web
 
Clase 13 seguridad
Clase 13   seguridad Clase 13   seguridad
Clase 13 seguridad
 
jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Java Primeros Pasos Revista- Edición 2
Java Primeros Pasos Revista- Edición 2Java Primeros Pasos Revista- Edición 2
Java Primeros Pasos Revista- Edición 2
 
jQuery
jQueryjQuery
jQuery
 
Jquery
JqueryJquery
Jquery
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
Curso Jsp
Curso JspCurso Jsp
Curso Jsp
 
Servicios web
Servicios webServicios web
Servicios web
 
Web service
Web serviceWeb service
Web service
 
14. Seguridad En Aplicaciones Web Asp.Net
14.  Seguridad En Aplicaciones Web Asp.Net14.  Seguridad En Aplicaciones Web Asp.Net
14. Seguridad En Aplicaciones Web Asp.Net
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
 
Introduccion a Jquery
Introduccion a JqueryIntroduccion a Jquery
Introduccion a Jquery
 

Similar a Framework .NET 3.5 13 Programación orientada a la red

Similar a Framework .NET 3.5 13 Programación orientada a la red (20)

Desarrollo y consumo de web services
Desarrollo y consumo de web servicesDesarrollo y consumo de web services
Desarrollo y consumo de web services
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Servicios web java php-perl-google
Servicios web java php-perl-googleServicios web java php-perl-google
Servicios web java php-perl-google
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
Spring Web Services
Spring Web ServicesSpring Web Services
Spring Web Services
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web
Servicios webServicios web
Servicios web
 
Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NET
 
Servicios web
Servicios webServicios web
Servicios web
 
Dce2 introduccion asp.net primeras 20
Dce2 introduccion asp.net primeras 20Dce2 introduccion asp.net primeras 20
Dce2 introduccion asp.net primeras 20
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Desarrollo de aplicaciones .NET
Desarrollo de aplicaciones .NETDesarrollo de aplicaciones .NET
Desarrollo de aplicaciones .NET
 
Servicios web
Servicios webServicios web
Servicios web
 
2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 

Más de Antonio Palomares Sender

Framework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesFramework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesAntonio Palomares Sender
 
Framework .NET 3.5 12 Uso de system.drawing
Framework .NET 3.5 12 Uso de system.drawingFramework .NET 3.5 12 Uso de system.drawing
Framework .NET 3.5 12 Uso de system.drawingAntonio Palomares Sender
 
Framework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebasFramework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebasAntonio Palomares Sender
 
Framework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosFramework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosAntonio Palomares Sender
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netAntonio Palomares Sender
 
Framework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetosFramework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetosAntonio Palomares Sender
 
Framework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtimeFramework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtimeAntonio Palomares Sender
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Antonio Palomares Sender
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serializaciónAntonio Palomares Sender
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoAntonio Palomares Sender
 

Más de Antonio Palomares Sender (13)

Framework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesFramework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de soluciones
 
Framework .NET 3.5 12 Uso de system.drawing
Framework .NET 3.5 12 Uso de system.drawingFramework .NET 3.5 12 Uso de system.drawing
Framework .NET 3.5 12 Uso de system.drawing
 
Framework .NET 3.5 11 Seguridad
Framework .NET 3.5 11 SeguridadFramework .NET 3.5 11 Seguridad
Framework .NET 3.5 11 Seguridad
 
Framework .NET 3.5 10 Linq
Framework .NET 3.5 10 LinqFramework .NET 3.5 10 Linq
Framework .NET 3.5 10 Linq
 
Framework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebasFramework .NET 3.5 09 Depuración, monitorización y pruebas
Framework .NET 3.5 09 Depuración, monitorización y pruebas
 
Framework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datosFramework .NET 3.5 08 Validación de datos
Framework .NET 3.5 08 Validación de datos
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Framework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetosFramework .NET 3.5 05 Tipo y jerarquía de objetos
Framework .NET 3.5 05 Tipo y jerarquía de objetos
 
Framework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtimeFramework .NET 3.5 04 El common language runtime
Framework .NET 3.5 04 El common language runtime
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serialización
 
Framework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entornoFramework .NET 3.5 01 Conceptos básicos y entorno
Framework .NET 3.5 01 Conceptos básicos y entorno
 

Framework .NET 3.5 13 Programación orientada a la red

  • 1. Programación orientada a la red Introducción a la programación orientada a la red Establecer credenciales Envío de correos Introducción a las aplicaciones distribuidas Creación y consumo de servicios Web XML Construcción de servicios y clientes WCF (Windows Communication Foundation)
  • 2. Programación orientada a la red Introducción a la programación orientada a la red El espacio de nombres System.Net La clase WebClient Las clases WebResponse y WebRequest La clase Dns
  • 3. Introducción a la programación orientada a la red Provee al desarrollador de .NET un interfaz de programación sencillo para el acceso a los protocolos comunes. Clases relacionadas del espacio de nombres System.Net Programación orientada a la red
  • 4. Programación orientada a la red La clase WebClient Suministra métodos comunes para enviar datos a y/o recibir datos de un recurso identificado mediante una URI Utiliza la clase WebRequest para proveer de acceso a los recursos [Visual C#] WebClient cliente = new WebClient (); Stream data = cliente.OpenRead((“http://www.contoso.com”); [Visual Basic] Dim cliente AsNew WebClient() Dim data As Stream = cliente.OpenRead(“http://www.contoso.com”)
  • 5. Programación orientada a la red Las clases WebResponse y WebRequest Se utilizan para acceder a datos de Internet Son clases abstractas Permiten transacciones que sean agnósticas con respecto al protocolo El método GetResponse invocará a la clase Response específica del protocolo [Visual C#] WebRequest peticion = WebRequest.Create("http://www.contoso.com"); // Devuelve la respuesta. WebResponse respuesta = peticion.GetResponse(); [Visual Basic] Dimpeticion As WebRequest = WebRequest.Create("http://www.contoso.com") ' Devuelve la respuesta. Dimrespuesta As WebResponse = peticion.GetResponse()
  • 6. Programación orientada a la red La clase DNS Es una clase estática que recupera información del servidor de nombres de dominio. Devuelve los datos como objetos de la clase IPHostEntry. Si un host tiene varias direcciones IP, devolverá una colección. [Visual C#] IPHostEntry informacionHost = Dns.GetHostByName("www.contoso.com"); [Visual Basic] DiminformacionHost As IPHostEntry = Dns.GetHostByName("www.contoso.com")
  • 7. Programación orientada a la red Estableciendo credenciales La clase CredentialCache La clase NetworkCredential
  • 8. Programación orientada a la red La claseCredentialCache Las aplicaciones que necesiten acceder a múltiples recursos pueden almacenar las credenciales para dichos recursos en una instancia de la clase CredentialCache [Visual C#] CredentialCache unaCache = new CredentialCache(); unaCache.Add(new Uri("http://www.contoso.com/"),"Basic",new NetworkCredential(Usuario,ContraseñaAlmacenada)); [Visual Basic] Dim unaCache AsNew CredentialCache() unaCache.Add(New Uri("http://www.contoso.com/"), "Basic", New NetworkCredential(Usuario,ContraseñaAlmacenada))
  • 9. Programación orientada a la red La clase NetworkCredential Provee credenciales para las autentificaciones basadas enbasic, digest, NTLM y Kerberos [Visual C#] NetworkCredential credencial = new NetworkCredential(Usuario,Contraseña,Dominio); CredentialCache unaCache = new CredentialCache(); unaCache.Add(new Uri("www.contoso.com"), "Basic", credencial); unaCache.Add(new Uri("app.contoso.com"), "Basic", credencial); WebRequest wr = WebRequest.Create("www.contoso.com"); wr.Credentials = unaCache; [Visual Basic] DimcredencialAs New NetworkCredential(Usuario,Contraseña,Dominio) DimunaCacheAs New CredentialCache() unaCache.Add(New Uri("www.contoso.com"), "Basic", credencial) unaCache.Add(New Uri("app.contoso.com"), "Basic", credencial) Dim wr As WebRequest = WebRequest.Create("www.contoso.com") wr.Credentials = unaCache
  • 10. Programación orientada a la red Envío de correos La clase MailMessage Montando el mensaje Envío del mensaje
  • 11. Programación orientada a la red La clase MailMessage Representa un mensaje de email que puede ser enviado utilizando la clase SmtpClient.
  • 12. Programación orientada a la red Montando un mensaje [Visual C#] MailMessage correo = new MailMessage(); // Establece la dirección correo.From = new MailAddress("pepito@ibis.es") ; correo.To.Add("juanito@ibis.es") ; // Establece el contenido correo.Subject = "Esto es un correo" ; correo.Body = "Cuerpo de ejemplo con código html embebido. <b>Esto está en negrita</b> <font color=#336699>Esto es azul</font>"; correo.IsBodyHtml = true; Para construir un mensaje es necesario definir una instancia de la clase MailMessage y establecer las propiedades requeridas [Visual Basic] 'create the mail message Dimcorreo As New MailMessage() ' Establece la dirección correo.From = New MailAddress(" pepito@ibis.es ") correo.To.Add(" juanito@ibis.es ") ' Establece el contenido correo.Subject = " Esto es un correo " correo.Body = "Cuerpo de ejemplo con código html embebido. <b>Esto está en negrita</b> <font color=#336699>Esto es azul</font>" correo.IsBodyHtml = True
  • 13. Programación orientada a la red Envío del mensaje Para enviar el mensaje hay que establecer: La clase SmtpClient El servidor SMTP a utilizar, mediante la propiedad host. Las credenciales para la autentificación, si lo requiere el servidor SMTP, establecido en la propiedad Credentials. La dirección e-mail del remitente, en la propiedad From. La dirección o direcciones del o de los destinatario(s), en la propiedad To. El contenido, en la propiedad Body. [Visual C#] SmtpClient smtp = new SmtpClient("mail.smtpserver.com") ; smtp.Credentials = new System.Net.NetworkCredential("usuario", "contraseña"); smtp.Send(mail); [Visual Basic] Dim smtp As New SmtpClient("mail.smtpserver.com") smtp.Credentials = New System.Net.NetworkCredential("usuario", "contraseña") smtp.Send(mail)
  • 14. Introducción a las aplicaciones distribuidas ¿Qué son las aplicaciones distribuidas? Opciones de creación de una aplicación distribuida ¿Qué son los protocolos y estándares de servicios Web? Las aplicaciones distribuidas y la seguridad Programación orientada a la red
  • 15. ¿Qué son las aplicaciones distribuidas? Programación orientada a la red 2-capas 3-capas N-capas
  • 16. Opciones de creación de aplicaciones distribuidas Programación orientada a la red ASMX WSE Remoting WCF EnterpriseServices Messaging
  • 17. ¿Qué son los protocolos y estándares de servicios Web? HTTP XML XML Schema SOAP WSDL Programación orientada a la red
  • 18. Las aplicaciones distribuidas y la seguridad Autentificación IIS security Autorización ASP.NET security Web services security Remoting security Enterprise service security Comunicación segura Windows security Programación orientada a la red
  • 19. Creación y consumo de servicios Web XML ¿Qué es un servicio Web XML? ¿Cómo crear un servicio Web XML ? ¿Cómo descubrir un servicio Web XML? ¿Cómo consumir un servicio Web XML? ¿Cómo pasar objetos hacia y desde un servicio Web XML ? ¿Cómo desplegar un servicio Web XML ? Programación orientada a la red
  • 20. ¿Qué es un servicio Web XML? Aplicación cliente Servidor web Petición SOAP sobre HTTP [WebMethod] Respuesta SOAP sobre HTTP Proceso de la petición Programación orientada a la red
  • 21. ¿Cómo crear un servicio Web XML? Crear un nuevo servicio Web utilizando la plantilla ASP.NET Web service. 1 Especificar la ubicación, lenguaje y nombre par el servicio Web 2 Suministrar metadatos en el atributo WebService para la clase parcial oculta 3 Añadir métodos en la clase parcial oculta 4 Programación orientada a la red
  • 22. ¿Cómo descubrir un servicio Web XML? Crear una aplicación cliente 1 Añadir una referencia hacia un servicio Web existente 2 Revisar los métodos en la clase proxy generada 3 Programación orientada a la red
  • 23. ¿Cómo consumir un servicio Web XML? Para llamar a un servicio Web XML desde una aplicación cliente .NET, cree una instancia de la clase proxy que represente al servicio Web e invoque después los métodos Web del objeto proxy [Visual C#] // Servicio Web. [WebMethod] public Cliente efectuarPago(double importeTransaction, Cliente clientePagador) { returnclientePagador.efectuarPago(importeTransaction); } // Aplicación cliente. unCliente = miServicioWeb. efectuarPago(importe, unCliente); [Visual Basic] ' Servicio Web. <WebMethod()> _ Public Function efectuarPago (ByVal importeTransaction As Double, _ ByVal clientePagador As Cliente) As Cliente ReturnclientePagador.efectuarPago(importeTransaction) End Function ' Aplicación cliente. unCliente = miServicioWeb.efectuarPago(importe, unCliente) Programación orientada a la red
  • 24. ¿Cómo pasar objetos desde y hacia un servicio Web XML? Los servicios Web XML usan serialización XML de implícitamente [Visual C#] [WebMethod] public string nombreCliente() { return Cliente.Nombre; } . . . using SalesApplication.SalesWebService ; // Crea una instancia de la clase proxy. Service miServicioWeb = new Service(); // Invoca el método Web. miServicioWeb.nombreCliente(); [Visual Basic] <WebMethod()> _ Public Function nombreCliente() As String Return Cliente.Nombre End Function . . . Imports SalesApplication.SalesWebService ' Crea una instancia de la clase proxy. DimmiServicioWeb As Service = New Service() ' Invoca el método Web. miServicioWeb.nombreCliente() Programación orientada a la red
  • 25.
  • 30.
  • 31. Autorización de URLProgramación orientada a la red
  • 32. ¿Cómo desplegar un servicio Web XML? Servidores Web Internet Information Service Directorios virtuales Abrir el cuadro de diálogo de publicación de sitio Web 1 Configurar las opciones de despliegue 2 Publicar el servicio Web 3 Programación orientada a la red
  • 33. Construyendo servicios y clientes WCF Modelo de servicios WCF Interoperabilidad de WCF Modelo de seguridad de WCF Contratos de WCF ¿Cómo implementar un contrato de servcio WCF? Opciones de hospedaje de un servicio WCF Archivo de configuración de WCF Enlaces de WCF Clientes de WCF Programación orientada a la red
  • 34. Modelo de servicios WCF Programación orientada a la red Servicio Cliente Dirección Enlace Contrato Endpoint Endpoint
  • 35. Interoperabilidad WCF Características principales de interoperabilidad de WCF Programación orientada a la red
  • 36. Modelo de seguridad de WCF Características del modelo de seguridad de WCF: Los enlaces de WCF son seguros por defecto, excepto BasicHttpBinding El modo de seguridad puede ser Transport, Message, o TransportWithMessageCredential La autorización se realiza mediante reclamaciones y credenciales para determinar identidades Se auditan los éxitos y fallos de identificación Programación orientada a la red
  • 37. Contratos de WCF Programación orientada a la red
  • 38. ¿Cómo implementar un contrato de servicio WCF? Crear un interfaz con atributos y una clase que implemente los métodos del interfaz [Visual C#] [ServiceContract()] publicinterface IMyService { [OperationContract] string MyOperation1(string myValue1); } [Visual Basic] <ServiceContract()> _ PublicInterface IMyService <OperationContract()> _ Function MyOperation1(ByVal myValue1 As String) _ As String End Interface Programación orientada a la red
  • 39. Opciones de hospedaje de un servicio WCF Programación orientada a la red IIS: Utilizado para hospedar servicios WCF que tengan contenido ASP.NET No requiere código de hospedaje Activación automática Windows Activation Service: Utilizar con IIS 7.0 para activación basada en mensajes, sobre HTTP Utilizar sin IIS para hospedar servicios WCF sobre otros protocolos, como TCP No requiere código de hospedaje Self-hosted: Usado durante el desarrollo Provee flexibilidad y facilidad de despliegue
  • 40. Programación orientada a la red El archivo de configuración de WCF <system.serviceModel> <services> <service name="MySimpleService" behaviorConfiguration="returnFaults"> <endpoint address="http://localhost:8080/MySimpleService" contract="ISimpleService" binding="wsHttpBinding"/> </service> </services> <behaviors> <serviceBehaviors> <behavior name="returnFaults" > <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> Al configurar un servicio WCF, se especifica el conector (endpoint) para el servicio, además de otra información como los comportamientos que soporte el servicio.
  • 41. Enlaces de WCF Programación orientada a la red Los enlaces describen cómo los conectores del servicio se comunican con los clientes Características de los enlaces: Proveen la información de protocolo, transporte y codificación. Los enlaces predefinidos incluyen: BasicHttpBinding, WSHttpBinding, NetTcpBinding y otros. [Configuration] <endpoint address="http://localhost/WCFService/Service.svc" binding="wsHttpBinding" contract="ISimpleService"/>
  • 42. Clientes de WCF Programación orientada a la red Opciones para la creación de un cliente proxy: Añadir la herramienta ServiceReference en Visual Studio 2008 La herramienta de línea de comando Svcutil Crear una instancia de la clase proxy y referenciar los métodos del servicio [Visual C#] CalculatorProxy proxy = new CalculatorProxy(); ... double result = proxy.Add(value1, value2); [Visual Basic] Dim proxy As New CalculatorProxy() ... Dim result AsDouble = proxy.Add(value1, value2)