SSL für Web API ohne IIS
Auch Self-Hosting-Szenarien unterstützen die Verwendung von SSL. Dazu bietet die HttpSelfHostConfiguration eine Eigenschaft ServiceCertificate, der man laut Auskunft aus dem Produktforum das für den Betrieb von SSL benötigte Zertifikat zuweisen kann. Allerdings hat es den Anschein, als ob dies in der vorliegenden BETA 1 noch nicht zum gewünschten Effekt führt. Alternativ dazu kann jedoch, wie auch bei WCF-Self-Hosting-Szenarien, ein Zertifikat auf der Kommandozeile zum Port der Wahl zugewiesen werden. Listing 16 demonstriert das, indem Port 4443 (der in Anlehnung an den offiziellen SSL-Port 443 gewählt wurde) für die Verwendung von SSL konfiguriert wird. Die erste Anweisung gibt dem angegebenen Benutzer, unter dem die Anwendung auszuführen ist, das Recht, diesen Port zu verwenden. Die zweite Anweisung assoziiert diesen Port mit dem gewünschten Zertifikat, wobei dessen Fingerabdruck unter certhash anzugeben ist. Anschließend kann eine HttpSelfHostConfiguration, die sich auf https und den genannten Port abstützt, erzeugt, konfiguriert und geöffnet werden.
Listing 16
netsh http add urlacl url=http://+:4443/ user=machineusername netsh http add sslcert ipport=0.0.0.0:4443 certhash=24e2f9c13090f52f378ffcd40172787daa0d930a appid={00000000-0000-0000-0000-000000000000}
Zusammenfassung
Das ASP.NET Web API bietet auf einfache Weise einiges an Kontrolle über die bereitgestellten REST-basierten Services. Benutzerdefinierte Formate können ebenso implementiert werden wie Handler, die sich um Querschnittsfunktionen kümmern. Darüber hinaus beschränkt sich das Web API nicht auf Szenarien, in denen IIS zum Einsatz kommt, sondern unterstützt auch Self-Hosting-Szenarien.