REST Service mit Login

Eine noch immer häufige Benutzer Authentifizierung ist Basic Clear Text. Dabei wird Benutzername und Passwort einfach Base64 endcodiert übergeben.

In meinem Windows 8 Beispiel rufe ich einfach eine Datei auf einem IIS an, die nur ein bestimmter Benutzer anfordern darf. Das könnte natürlich auch ein REST basierter Service sein.

image

Im ersten Versuch wird man vermutlich eine 401 Fehlermeldung erhalten, wenn man nur den HTTPClient verwendet. In den Metro Design Style Guide steht geschrieben, das Fehlermeldungen direkt im Userinterface (also ohne popup) angezeigt werden soll.

image

In den Request kann man sich per HTTPClientHandler einhaken. So ist auch der Zugriff auf Cookies möglich. In diesem Fall übergeben wir passende Credentials für die Authentifizierung am Webserver.

Dim url As New Uri("http://win8-pre9/lab1/security/geheim.txt")
Dim h As HttpClientHandler = New HttpClientHandler()
Dim c = New Net.NetworkCredential("test", "admin")

h.Credentials = c

Dim http As New HttpClient(h)

Try
  Dim txt = Await http.GetStringAsync(url)
  textbox1.Text = txt
Catch ex As Exception
            error1.Text = ex.Message
            error1.Visibility = Visibility.Visible
End Try

Dies ist VB.NET Code für WinRT.

Kommentar schreiben