Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 2 van 2

Onderwerp: Hoe omgaan met een "(401) Unauthorized" error?

  • Vraag is niet opgelost
  1. #1

    Hoe omgaan met een "(401) Unauthorized" error?

    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.

    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!

  2. #2
    Senior Member MarnixICT's avatar
    Geregistreerd
    15 oktober 2011
    Locatie
    Sleeuwijk
    Afstand tot server
    ±109 km
    Steve,

    De foutmelding word inderdaad 3x achter elkaar gegeven, daarna word de client een tijdje "geband" van de connectie voor een aantal minuten. De webpagina geeft vaak de tekst "Unauthorized access" weer, zonder error. Jouw code controleert nu op de "401" code terwijl er geen error word gegeven. Als het goed is kan je voor die tijd ook niet inloggen, zelfs al zijn de usercredentials wel goed.

    Kijk wat de MsgBox(webResponse) zegt. Ik geef als voorbeeld "Unauthorized access.". Voeg het volgende hiertussen:

    Code:
    ...
    webStreamReader.Close()
    
                MsgBox(webResponse)
    
    If webResponse.toLower.Contains("unauthorized") Then
    
                    MsgBox("The username or password you've entered is incorrect. Login is disabled for 5 minutes.")
    
                End If
    
            Catch ex As WebException
    ...
    Laatst aangepast door MarnixICT : 29 juli 2012 om 14:33
    Met vriendelijke groet,

    Marnix

Berichtenregels

  • U mag geen nieuwe discussies starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • Umag niet uw berichten bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen