Goedemorgen. 
Ik ben bezig een Update Client te schrijven voor de DNS service 'No-IP.com'. Het inloggen op de server gaat goed, alleen het afhandelen van de "(401) Unauthorized" error loopt niet helemaal lekker. Dit is de code die de server om een update verzoekt en vervolgens de gebruiker een foutmelding geeft als de server een 401 error antwoordde.
Wanneer de client een 401 error terug krijgt, weergeeft hij netjes de foutmelding dat de gebruiker verkeerde inlog gegevens heeft ingevoerd. Het vervelende is alleen dat wanneer deze foutmelding 3 keer achter elkaar weergegeven is, de foutmelding niet meer weergegeven wordt. Het lijkt wel alsof de server dan gewoon geen 401 error meer geeft, terwijl de inlog gegevens wel nog steeds fout zijn.
Mijn vraag is nu: hoe kan ik ervoor zorgen dat er, wanneer de inlog gegevens onjuist zijn, altijd een foutmelding weergegeven wordt?
Ik begrijp het als mijn uitleg niet helemaal duidelijk is, ik weet alleen niet helemaal hoe ik het probleem anders kan beschrijven.
Alvast bedankt!

Ik ben bezig een Update Client te schrijven voor de DNS service 'No-IP.com'. Het inloggen op de server gaat goed, alleen het afhandelen van de "(401) Unauthorized" error loopt niet helemaal lekker. Dit is de code die de server om een update verzoekt en vervolgens de gebruiker een foutmelding geeft als de server een 401 error antwoordde.
Code:
Try
' Set the update URL
Dim UpdateURI As String = "https://dynupdate.no-ip.com/nic/update?hostname=" + My.Settings.Hostname
' Add a new credential for this account
Dim LoginCredentials As CredentialCache = New CredentialCache
LoginCredentials.Add(New Uri("https://dynupdate.no-ip.com/nic/update?hostname=" + My.Settings.Hostname), "Basic", New NetworkCredential(My.Settings.Username, My.Settings.Password))
' Set other variables
Dim webStream As Stream
Dim webResponse = ""
Dim req As HttpWebRequest
Dim res As HttpWebResponse
' Start request process
req = WebRequest.Create("https://dynupdate.no-ip.com/nic/update?hostname=" + My.Settings.Hostname)
' Set requiered User Agent and set request method to 'GET'
req.UserAgent = "User-Agent: DNS Update Client/1.0 stefan@sociapoint.com"
req.Method = "GET"
req.Credentials = LoginCredentials
res = req.GetResponse()
webStream = res.GetResponseStream()
Dim webStreamReader As New StreamReader(webStream)
While webStreamReader.Peek >= 0
webResponse = webStreamReader.ReadToEnd()
End While
res.Close()
webStreamReader.Close()
MsgBox(webResponse)
Catch ex As WebException
If ex.Message.Contains("401") Then
MsgBox("The username or password you've entered is incorrect.")
End If
End Try
Wanneer de client een 401 error terug krijgt, weergeeft hij netjes de foutmelding dat de gebruiker verkeerde inlog gegevens heeft ingevoerd. Het vervelende is alleen dat wanneer deze foutmelding 3 keer achter elkaar weergegeven is, de foutmelding niet meer weergegeven wordt. Het lijkt wel alsof de server dan gewoon geen 401 error meer geeft, terwijl de inlog gegevens wel nog steeds fout zijn.
Mijn vraag is nu: hoe kan ik ervoor zorgen dat er, wanneer de inlog gegevens onjuist zijn, altijd een foutmelding weergegeven wordt?
Ik begrijp het als mijn uitleg niet helemaal duidelijk is, ik weet alleen niet helemaal hoe ik het probleem anders kan beschrijven.

Alvast bedankt!
