IIS Express und Basic Authentifizierung

In meinen aktuellen Experimenten mit der ASP.NET Web API arbeite ich mit verschiedenen Authentifizierungsverfahren. Leider ist es mit IIS Express direkt per Dialog nicht möglich Einstellungen vorzunehmen.

Um nicht auf den IIS 8 wechseln zu müssen kann man direkt in der applicationhost.config die Einstellungen vornehmen. Die Datei findet sich unter C:\Users\xxx\Documents\IISExpress\config . Der Standardwert für Basicauthentication ist false

<authentication>
 <anonymousAuthentication enabled="true" userName="" />
<basicAuthentication enabled="true" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="false">
<providers> <add value="Negotiate" /> <add value="NTLM" /> </providers>
</windowsAuthentication>
</authentication>
Ich habe auch gleich noch das Logging für diese Web Anwendung aktiviert.

 

<site name="WebAPiAuth" id="38">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\websites\WebAPiAuth\WebAPiAuth" />
</application>
<logFile enabled="true" directory="c:\temp" />
<bindings> <binding protocol="http" bindingInformation="*:14149:localhost" />
</bindings>
</site>

 

Dann muss der User als lokaler Benutzer angelegt werden, den man zum Test verwendet.

image

In der Datei Web.config der Web Anwendung, muss dann als Authentifizierungsprovider Windows verwendet werden. Man kann darüber hinaus den Zugriff im Detail regeln.

<authentication mode="Windows">
</authentication>
<authorization>
<deny users="?"/>
<allow users="demo"/>
</authorization>

Beim Aufruf einer Website erscheint dann der etwas antik wirkende Anmeldedialog für die Basic Clear Text Anmeldung.

image

Dies dient nur um ein spezielles Verhalten zu testen. In der Praxis wird man das so vermutlich nicht mehr dem Benutzer zumuten.

Wenn man nun per JavaScript oder auch direkt per Browser oder Fiddler auf die Ressource zugreifen möchte ohne das man die User Credentials eintippen muss, kann man diesen in der url angeben. Die übliche Form lautet Benutzername:Passwort@url also http://demo:demo@localhost:14149/

Der Internet Explorer unterbindet das seit der Version 7 aus Sicherheitsgründen. Bei Chrome 25 klappt es dagegen nach wie vor.

Kommentare sind geschlossen