Avatar billede Slettet bruger
17. september 2003 - 13:43 Der er 6 kommentarer og
1 løsning

System.Net.WebRequest med Credentials

Jeg har et site uden anonymous access.

Jeg skal læse en side på sitet med System.Net.WebRequest men får naturligvis en 401:Access Denied tilbage.

Jeg har prøvet at fiddle med PreAuthenticate og Credentials, men uden held.

Er der nogen der ved hvordan man læser en side fra en webserver hvor der ikke er anonym access?



Her er min kode der ikke virker:

    public string GetPage(string AUrl, string AUsername, string APassword, string ADomain, NameValueCollection AHeaders)
    {
      string ret="";
      System.Net.WebRequest myRequest =
        System.Net.WebRequest.Create( AUrl );
      myRequest.Headers.Add(AHeaders);
      System.Net.NetworkCredential credential = new System.Net.NetworkCredential(AUsername, APassword, ADomain);
      CredentialCache myCache = new CredentialCache();
      myCache.Add(new Uri(Sitecore.WebUtil.GetServerUrl()), "Digest", credential);
      myRequest.PreAuthenticate = true;
      myRequest.Credentials = myCache;
      myRequest.Method = "GET";
      if (AHeaders != null)
        myRequest.Headers.Add(AHeaders);
      System.Net.WebResponse myResponse = myRequest.GetResponse();
      try
      {
        Stream stream = myResponse.GetResponseStream();
        StreamReader streamreader = new System.IO.StreamReader(stream);
        ret = streamreader.ReadToEnd();
        return ret.Replace( "\x00", "" );
      }
      finally
      { 
        myResponse.Close();
      } 
}
Avatar billede jakobandersen Nybegynder
17. september 2003 - 14:02 #1
Credentials egenskaben på WebRequest objektet skal pege på dit NetworkCredential objekt
Avatar billede Slettet bruger
17. september 2003 - 14:11 #2
Den peger allerede på min NetworkCredential, igennem min CredentialCache().
Avatar billede jakobandersen Nybegynder
17. september 2003 - 14:19 #3
Har du prøvet at pege den direkte?
Avatar billede Slettet bruger
17. september 2003 - 14:23 #4
Ja. Det giver samme fejl.
Avatar billede nielslbeck Nybegynder
17. september 2003 - 15:20 #5
Kan du ikke benytte HttpWebRequest? Den virker i hvert fald!

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(server);
req.Credentials = new NetworkCredential(username, password);
req.PreAuthenticate = true;
WebResponse wr = req.GetResponse();
Stream stream = wr.GetResponseStream();

Og så giver resten vel sig selv...
Avatar billede nielslbeck Nybegynder
19. september 2003 - 18:37 #6
Får du det til at virke?
Avatar billede nielslbeck Nybegynder
03. oktober 2003 - 10:37 #7
Vi prøver lige igen... Får du det til at virke? Så må du gerne lukke spørgsmålet :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester