Sunucu, HTTP temel kimlik doğrulaması mı yoksa başka bir çeşit mi kullanıyor? HTTP temelini kullanıyorsa, web kullanıcı isteği üzerine Credentials
özelliğini doğru kullanıcı adı ve parola içeren bir kimlik bilgisine ayarlayabilir ve PreAuthenticate
özelliğini true değerine ayarlayabilirsiniz.
var uri = new Uri("https://somesite.com/something");
var request = WebRequest.Create(uri) as HttpWebRequest;
request.Credentials = new NetworkCredential("myUserName","myPassword");
request.PreAuthenticate = true;
var response = request.GetResponse();
Not:
İşte bir örnek (Bu denenmemiş, yani sadece bir kılavuz olarak kullanabilirsiniz) var Bunu yaparken Tecrübelerime göre NET çerçevesinde bazı garip davranış yoktur. Bunu kod diyor yapmalı düşünmek istiyorum, ama aslında yapar:
Server verdi kimlik bilgileriyle 401
Yeniden Gönder isteği ile yanıt hayır bilgilerle sunucuya
- Gönder isteği
- Sunucu, isteği kabul eder.
Neden böyle yapılacağına dair hiçbir fikrim yok, kırılmış göründüğü için, belki de makinemin bir tuhaflığıydı ve belki de sana olmayacaktı.
Uygulamanız performans açısından hassas değilse ve istekleriniz büyük verilerin POSTS'ları değilse, büyük olasılıkla farkedilmeyeceksiniz, ancak bunun üstesinden gelmek için, HTTP temel kimlik doğrulama üstbilgisini el ile oluşturmalı ve HttpWebRequest
Headers
koleksiyonunu elle işleyerek.
Açıkladığınız davranışın, * nix gösterilerinde yer alan aynı davranış olduğuna inanıyorum. Bir kez dener ve başarısız olur ve daha sonra kimlik bilgilerini gönderir ve başarılı olur. – Stephan
Bence bu, http belirtiminin bir parçası olan bir tür meydan okuma isteği dizisidir. – MGOwen