Web Services in der Praxis mit Visual Studio .NET

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
Was gibt´s neues im Bereich Sicherheit
Sichere Anbindung kleiner Netze ans Internet
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Office XP und XML Web Services Dariusz Parys.NET Strategy & Developer Group
ASP.NET Überblick und technischer Einstieg
DI Christian Donner cd (at) donners.com
Datenbankzugriff im WWW (Kommerzielle Systeme)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
JAVA RMI.
Introducing the .NET Framework
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
DVG Klassen und Objekte
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Erstellen von WebServices mit Visual FoxPro 9.0
Uwe Habermann Venelina Jordanova VFP Code in Silverlight Anwendungen ausführen.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Björn Schmidt, Hoang Truong Nguyen
1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
1 Softwareentwicklung mit.NET Teil 3 ASP.NET Web Forms Dr. Ralph Zeller.
Software Architektur III
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Weltweite Kommunikation mit Exchange Server über das Internet
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Integration heterogener verteilter Systeme mit WS-BPEL – ein Praxisbeispiel Dr. Wolf-Dieter Heinrichs.
Webservice Grundlagen
Best Practices in der Datenbank-programmierung
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
SQL Server 2005 CLR-Integration
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Präsentation von Sonja Pathe
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 5 Folie 2 Windows Communication Foundation (WCF) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Management- und Web Services- Architekturen
Oliver Spritzendorfer Thomas Fekete
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
MTS Microsoft Transaction Server Martin Basziszta
Einführung in Web Services Web Services in der Praxis
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
Reinhold Rumberger Web Services.
Die AppDomain Das unbekannte Wesen?
SOAP.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
->Prinzip ->Systeme ->Peer – to – Peer
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Sicherheitsaspekte in Service Orientierten Architekturen Eike Falkenberg Sommersemester 2006 Anwendungen I.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Mainframe und WebServices bei der W. KAPFERER KG Einfache Internet-Lösungen in Verbindung mit vorhandenen Host-Programm-Strukturen.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Workshop 1 Getting Started 2016 Boris Wylutzki
 Präsentation transkript:

Web Services in der Praxis mit Visual Studio .NET MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 1 Web Services in der Praxis mit Visual Studio .NET Christian Weyer cw@eyesoft.de Freiberuflicher Berater & Entwickler

Agenda XML Web Services im Überblick Architektur von ASP.NET XML Web Services mit ASP.NET Client-Anwendungen für XML Web Services Einfachheit & Mächtigkeit von ASP.NET in punkto XML Web Services Wo gibt‘s weitere Info‘s?

Voraussetzungen Kenntnis von XML und grundlegende .NET-Kenntnisse Interesse und Lust, sich auf die neue Welt der XML Web Services einzulassen …

Demos Quer über diesen TechTalk-Vortrag verstreut Sie werden alle wichtigen Techniken und Vorgehensweise zu sehen bekommen

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 5 Web Services Stack MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 5 Veröffentlichen, Finden, Benutzen UDDI Formale Dienstbeschreibung WSDL Dienstinteraktion SOAP Universelles Datenformat XML Allgegenwärtige Kommunikation Internet

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 6 Web Services Roadmap MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 6 Inter Application-Protokolle Reliable Messaging Eventing Transactions Directory Web Services-Module Inspection Referral Security Description Routing License SOAP Internet TCP/IP XML HTTP/SMTP

ASP.NET in der Übersicht MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 7 HTTP SOAP <HTML> <script> … </script> </HTML> IIS Web Forms app.aspx class X { [WebMethod] public int method1() { … } } Web Services Common Language Runtime app.asmx

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 8 ASP.NET-Architektur MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 8 Unmanaged Code HTTP Request IIS ASP.NET Runtime Managed Code HTTP Module HTTP Module Request Handler ...

ASP.NET-Laufzeitumgebung MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 9 HTTP inetinfo.exe (IIS) aspnet_wp.exe (ASP.NET Worker Prozess) aspnet_isapi.dll (ASP.NET ISAPI Extension) Named Pipe HTTP Runtime

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 10 HTTP Pipeline MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 10 HTTP Pipeline-Prozessmodell Details von aspnet_wp.exe Worker Prozess komplett konfigurierbar aspnet_isapi.dll verarbeitet <processModel> Konfiguration aus der globalen Datei machine.config Jeder einzelne Worker Prozess bedient standardmäßig unendlich viele Anfragen ASP.NET Web Services sind HTTP Handler System.Web.Services.Protocols. WebServiceHandlerFactory

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 11 ASP.NET-Architektur MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 11 Alle Web-Anwendungen laufen in einem aspnet_wp.exe Prozess IsolationLevel bei Installation festgelegt auf Low Isolation der Web-Anwendungen erfolgt über Application Domains separater virtueller Speicher pro Application separates Debugging pro Application ASPNET als Standardbenutzer zur Ausführung von aspnet_wp.exe Stark eingeschränkte Berechtigungen

Dynamische Kompilierung MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 12 aspnet_wp.exe wird verwendet, um Code für Web-Anwendungen und Web Services auszuführen Versucht, Assemblies für Web-Anwendung und Web Service zu laden Erzeugt über CodeDOM-Klassen, die sich von Page (Web Forms) oder WebService ableiten Bei Änderungen in Source Code-Dateien werden über Reflection.Emit automatisch neue Assemblies erzeugt

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 13 ASP.NET Architektur MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 13 ASP.NET Runtime Assembly existiert, gleicher Zeitstempel Assembly für Datei existiert? Nein – kompilieren Ja – ausführen <% WebService codebehind=„WS„ %> ASP.NET Compiler Web Service Assembly Reflection class WS : WebService { ... }

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 14 ASP.NET Deployment MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 14 ASP.NET-Anwendungen sind grundsätzlich voneinander isoliert Verschiedene Anwendungen können parallel mit verschiedenen Versionen einer Komponente arbeiten Installation einer ASP.NET-Anwendung durch Erstellen eines Verzeichnisses mit anschließendem Filecopy (XCOPY Deployment) Keine Registry-Änderungen (REGSVR32) Keine Änderungen in der IIS Metabase Kein Neustart des Web Servers Uninstall Verzeichnis löschen

ASP.NET und .NET Remoting MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 15 Zwei Möglichkeiten in .NET, XML Web Services zu erzeugen ASP.NET .NET Remoting Remoting bietet automatisierte Möglichkeit, nicht-XML Web Services zu erzeugen ASP.NET Web Services für lose gekoppelte Systeme .NET Remoting stellt eine verteilte Identität zur Verfügung Leicht erweiter- und konfigurierbar

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 16 XML Web Services MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 16 XML Web Services werden mit ASP.NET zum Kinderspiel Keine Kenntnis über die Standards notwendig Verführt zur Spielerei -> Web Services nicht für alles geeignet Mapping von Web Services auf Dateiendung .asmx Machine.config IIS Mapping Implementierung inline oder als Code-behind-Klasse Festlegung über die @WebService Direktive

Web Services-Attribute MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 17 <WebService (Namespace:="http://eyesoft.de/webservices/", _ Description:="This Web Service mimics a very simple calculator.")> _ Public Class SimpleCalc <WebMethod(Description:="Add two numbers")> _ Public Function Add(ByVal a As Long, _ ByVal b As Long) As Long Return a + b End Function End Class

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 18 XML Web Services MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 18 Attribut <WebService> muss sich auf eine Klasse beziehen Namespace System.Web.Services Diese Klasse kann von Klasse WebService abgeleitet sein Direkter Zugriff auf HttpContext Eigenschaften Description und Namespace werden in WSDL und auch im Client Proxy verwendet Description: Informale Beschreibung des Web Services Namespace: XML Namespace, in dem die Typen/Schemas des Web Services definiert sind

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 19 XML Web Services MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 19 Attribut <WebMethod> muss sich auf eine öffentliche Methode einer Klasse beziehen Namespace System.Web.Services Methode kann standardmäßig über SOAP, HTTP GET und HTTP POST aufgerufen werden Konfigurierbar in web.config

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 20 Inline vs. Code behind MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 20 Inline: <%@ WebService Language="C#" Class="MyMath" %> using System.Web.Services; public class MyMath { [WebMethod] public int Add(int num1, int num2) return num1+num2; } Code-behind: <%@ WebService Language="VB" Class="MyNameSpace.MyWebService,MyAssembly" %>

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 21 Web Services testen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 21 ASP.NET besitzt eine eingebaute Test- und Dokumentationsseite für XML Web Services Kann konfiguriert werden Mit HTTP GET-Bindung verbunden Hier werden keine SOAP-Pakete verschickt Reines HTTP GET Erweiterungsmechansimen von ASP.NET Web Services sind so nicht testbar

Nutzung von Web Services MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 22 ASP.NET Web Forms ASP.NET Mobile Web Forms .NET Konsolenanwendung .NET Windows Forms HTTP GET und POST Client-Anwendungen IE Web Services Behavior Klassisches Win32 PocketPC-Anwendung Java-Anwendung UNIX/Linux-Skript ...

ASP.NET Web Service-Clients MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 23 Proxy-basiertes Entwurfsmuster Client-Anwendung spricht mit lokalem Objekt Proxy-Objekt übernimmt die eigentliche Kommunikation Klassenimplementierung basiert auf WSDL des Web Services Dynamische Proxys nur mit Zusatzaufwand möglich „Webverweis hinzufügen“ in Visual Studio .NET wsdl.exe Kommandozeilenanwendung Synchroner Aufruf Asynchroner Aufruf BeginMethodenName und EndMethodenName Aufruf von BeginXXX mit Callback oder WaitHandle EndXXX zur Freigabe der Verbindung

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 24 Web Services debuggen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 24 Interaktives Debuggen Breakpoints setzen PDB-Datei erstellen lassen An den richtigen Prozess hängen Web Services instrumentieren Debug-Klasse Trace-Klasse Event Log Performance Counters

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 25 Web Services debuggen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 25 ASPNET hat keine Berechtigungen, um in das Event Log zu schreiben \\HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\Eventlog\Application\RestrictGuestAccess auf 0 setzen und rebooten ASPNET hat keine Berechtigungen, um Event Sources zu erstellen ASPNET-Benutzer muss Lese/Schreiberechte auf \\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Eventlog und alle Unterschlüssel haben

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 26 Serialisierung MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 26 Die Umwandlung von XML/SOAP-Datenpaketen in native .NET-Typen und wieder zurück geschieht über den Prozess der Serialisierung/Deserialisierung In ASP.NET XML Web Services kümmert sich die Klasse XmlSerializer um diese Aufgaben Im Gegensatz zu .NET Remoting-basierten Web Services Relativ gut konfigurierbar, hat aber einige Schwächen, die man schnell abschaffen sollte

System.Xml.Serialization MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 27 XmlSerializer ist kein Serialisierer / Deserialisierer im eigentlichen Sinne Mehr ein „Reflektor“ Bietet keine Type Fidelity Tatsächlich ist Type Infidelity das Ziel Bildet XML-Daten auf Typinstanzen ab Bildet Typinstanzen auf XML-Daten ab Erlaubt die Abbildung zwischen .NET- und nicht-.NET-Anwendungen (De-)Serialisiert nur öffentliche Felder Zirkuläre Referenzen können Endlosschleifen bewirken Objektgraph muß Blätter besitzen, die nicht auf andere Objekte verweisen Unterstützt ausschließlich XML als Format Wird vornehmlich für Interoperabilität verwendet Einsatz in ASP.NET XML Web Services

Serialisierung mit XmlSerializer MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 28 using System; using System.IO; using System.XML.Serialization; public class MyType { public Int32 x, y, sum; } void SomeMethod(Object rootObject) { FileStream fs = new FileStream(@“C:\MyData.xml", FileMode.Create); // Create an XML serializer for the root type XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyType)); // Serialize the object graph to the stream xmlSerializer.Serialize(fs, rootObject); fs.Close(); // Force a flush of the data }

Deserialisierung mit XmlSerializer MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 29 using System; using System.IO; using System.XML.Serialization; public class MyType { public Int32 x, y, sum; } MyType SomeMethod() { FileStream fs = new FileStream(@“C:\MyData.xml", FileMode.Open); XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyType)); // Deserialize the object graph from the stream MyType rootObject = (MyType) xmlSerializer.Deserialize(fs); fs.Close(); // Close the file return(rootObject); // Return the object }

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 30 Datentypen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 30

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 31 Marshaling & Encoding MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 31 Serialisierung geschieht mit Hilfe von System.Web.XmlSerialization Marshaling durch XmlSerializer Instanzen von XmlSerializer werden an CLR-Typen gebunden Eingeschränkte Unterstützung für komplexe CLR Typen XSD-basiertes Modell Eigenes Marshaling durch Überschreiben von IXmlSerializable

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 32 XML-Format MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 32 Beeinflussung des XML-Formats/ Marshalings XmlElement | SoapElement XmlAttribute | SoapAttribute XmlArray | SoapArray XmlRoot Unterschiedliche XML-Formate in Web Services HTTP-GET und HTTP-POST SOAP WSDL-Beschreibung Zwei (bzw. drei) Ausprägungen von SOAP Document standardmäßig, konfigurierbar RPC konfigurierbar

SOAP-Format beeinflussen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 33 Attribut Ausprägung Use Betrifft SoapDocument Method Document Literal/ Encoding Methode SoapDocument Service Literal/ Encoded Alle Methoden SoapRpcMethod RPC Encoded SoapRpcService

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 34 Konfiguration MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 34 ASP.NET Web Services sind über Einstellungen in der machine.config oder einer anwendungsspezifischen web.config konfigurierbar Festlegung der unterstützen Protokolle HttpGet, HttpPost, Soap, Documentation Angabe der Test- und Dokumentationsseite Konfiguration der Sicherheitseinstellungen über web.config

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 35 Zustand und Caching MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 35 Zustand Web Services sind von Natur aus zustandslos Session-Objekt in ASP.NET ermöglicht das Halten von Daten zwischen mehreren Aufrufen Auch Application-Objekt verfügbar [WebMethod(EnableSession=True)] Vorsicht bei Verwendung von Sessions in Web Services (Cookies) Caching Bei Rückgabe großer Daten, die sich selten ändern, sollte man Caching-Funktionalität von ASP.NET verwenden [WebMethod(CacheDuration=40)]

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 36 Transaktionen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 36 Transaktionen DB-Transaktionen ADO.NET-Transaktionen ‚Lokale‘ verteilte COM+-Transaktionen Lang andauernde Transaktionen (z.B. mit BizTalk Server) TransactionOption Property in WebMethod Attribut [WebMethod(TransactionOption= TransactionOption.Required)] COM+-Transaktionseinstellungen Über ContextUtil kann der Ausgang einer Transaktion gesteuert werden

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 37 COM+-Dienste nutzen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 37 Nutzung einer Vielzahl von COM+-Diensten möglich (je nach Plattform) Transaktionen Objekt-Pooling Just-In-Time Aktivierung (JITA) Queued Components Loosely-Coupled Events (LCE) Objekt-Erzeugung Private Komponenten Rollenbasierte Sicherheit

COM+ und ASP.NET Web Services MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 38 Verwendung von COM+-Diensten auch in ASP.NET und XML Web Services Verwendung einer eigenen Klasse, welche die COM+-Methoden implementiert Wrappen dieser Klasse durch eine Web Service-Klasse Verwendung der Eigenschaft TransactionOption des Attributs WebMethod Disabled, NotSupported, Supported, Required, RequiresNew Probleme bei der dynamischen Registrierung durch ASP.NET-Laufzeitumgebung Standardmäßiges Benutzerkonto mit geringen Privilegien

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 39 Sicherheit MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 39 Unterschiedliche Ebenen Verschlüsselung Z.B. Transportsicherheit (SSL, TLS, …) Authentifizierung Autorisierung Signaturen Kryptografie

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 40 Authentifizierung MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 40 Windows-Authentifizierung (via IIS) Basic, Digest, NTLM, Kerberos, clientseitige SSL-Zertifikate Forms-basierte (Cookie) Authentifizierung Passport-Authentifizierung Eigene Authentifizierung <security> <authentication mode="[Windows|Forms|Passport|None]"/> </security>

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 41 Autorisierung MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 41 Bsp.: erlaube “Admins” oder “WebServiceUsers” und lehne alle anderen ab Bsp.: lehne anonyme (nicht auth.) Benutzer ab <!-- * = alle, ? = anonym bzw. nicht auth. --> <authorization> <allow verbs="POST" Roles="Admins" /> <allow Roles="WebServiceUsers"/> <deny users="*" /> </authorization> <authorization> <deny users="?" /> </authorization>

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 42 Große Daten MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 42 ASP.NET Web Services unterstützen keine Attachments Weder MIME, noch DIME Lediglich kodierte Parameterwerte können hier als Notlösung verwendet werden DIME-Beispielimplementierung auf MSDN Online Nur ein Sample, kein Support DIME Support für nächste Version angekündigt

Erweiterungsmöglichkeiten MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 43 HTTP Module HTTP Handler SOAP Header SoapExtensions

Erweiterungsmöglichkeiten MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 44 SoapExtensions Fortgeschrittenes Konzept Web Services-Aufrufe können intercepted werden Web Method-Aufrufe können intercepted werden Pre- und Post-Processing Klasse von SoapExtension ableiten Eigenes Attribut von SoapExtensionAttribute ableiten Attribut auf Methoden einer Web Service-Klasse anwenden Auch Konfiguration über web.config/machine.config möglich

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 45 Zu beachten MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 45 Exceptions Werden immer als SoapException an den Client übertragen Eigene Exceptions gehen verloren Man kann aber über SoapException die Gestalt des SOAP Faults steuern Wenn Sessions verwendet werden Client muss Cookies verwalten Überladene Methoden Da WSDL kein Überladen zulässt, muss man den Nachrichtennamen im Quelltext spezifizieren/ändern <WebMethod(MessageName:=“FooX”)>

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 46 Tipps MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 46 Keine Properties als WebMethod verwenden Properties implizieren Zustand ‘Weniger ist mehr’ Caching verwenden, wo sinnvoll CacheDuration Property für Anzeige-Caching Klasse Cache für Daten-Caching Grosser Performanzgewinn Stress Testing ACT im VS.NET Enterprise Edition WAST Nicht auf Biegen und Brechen … Web Services sind nicht immer das geeignete Mittel! Web Services vor allem dann verwenden, wenn Interop gefragt

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 47 Für Leseratten MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 47 http://www.eyesoft.de/wsbuch/

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 48 Glossar MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 48 DIME: Direct Internet Message Encapsulation. Standard zur Übertragung von großen Datenmengen in einer Web Services-Umgebung GXA: Global XML Web Services Architecture. Rahmenwerk von Microsoft für Real-World Web Services aufbauend auf SOAP. Definiert Spezifikationen für die unterschiedlichsten Bereiche IIS: Microsoft Internet Information Server SOAP: Simple Object Access Protocol (ursprünglich). XML-basierte Spezifikation des W3C zur plattformübergreifenden Kommunikation im Internet. Basis für XML Web Services SOAP Toolkit: SOAP/ Web Services-Implementierung von Microsoft für COM / Windows DNA-Anwendungen WSDL: Web Services Description Language. XML Dialekt zur Metadatenbeschreibung von Web Services XML Web Services: Softwareimplementierungen/Programme die über XML-basierte Standardprotokolle im Internet von nahezu jeder Plattform aus angesprochen werden können

Weitere Informationen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 49 Christian Weyer, XML Web Service-Anwendungen mit Microsoft .NET, Addison-Wesley http://www.eyesoft.de/wsbuch/ Andreas Eide at. al., Professional ASP.NET Web Services, Wrox Press http://www.amazon.de/exec/obidos/ASIN/1861005458/qid%3D1010053263/302-2442057-6660030 Andrew Krowczyk et. al., Professional C# Web Services: Building .NET Web Services with ASP.NET and .NET Remoting, Wrox Press http://www.amazon.de/exec/obidos/ASIN/1861004397/qid%3D1010053263/302-2442057-6660030 William Oellermann, Architecting Web Services, Apress http://www.amazon.de/exec/obidos/ASIN/1893115585/qid%3D1010053302/302-2442057-6660030

Weitere Informationen MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 50 .NET XML Web Services Repertory http://www.xmlwebservices.cc/ MSDN SOAP Center http://msdn.microsoft.com/soap/ MSDN XML Web Services Center http://msdn.microsoft.com/webservices/ SOAP Builders Interop Lab http://www.xmethods.net/soapbuilders/ LearnXmlWs http://www.learnxmlws.com/ GotDotNet http://www.gotdotnet.com/ .NET Extreme http://www.dotnetextreme.com/ .NET 247 Guide Web Services http://www.dotnet247.com/247reference/guide/9.aspx

MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 51 Fragen!? MSDN TechTalk – <<Monat JJJJ>> <<Thema>> 51 Uff...