2011-06-09 15 views
7

Web sayfalarının ekran görüntülerini oluşturmak için asp.net uygulamasında WebBrowser denetimini kullanıyorum. Uygulama havuzu hesabını değiştirene kadar görüntüler oluşturmayı başardım. Yeni uygulama havuzuna gerekli tüm hakları verdim ve sayfalarımdan IE'ye göz atabiliyorum. Ama ben web tarayıcısını kontrol ederek programlı olarak 401.2 aldığımda. IIS 7.0'da "Başarısız istek izleme kuralları" kurdum ve istekleri algılamak için Fiddler'ı kullandım ve kimlik doğrulama başlığının doğru olmadığını buldum.WebBrowser denetimi için kimlik doğrulama üstbilgisini ayarlama - ASP.NET

Ancak webbrowser.navigate, özel http üstbilgileri iletebileceğimiz aşırı bir yöntem kullanıyor. Nasıl kurabilirim? Sadece entegre kimlik doğrulamayı kullanmak istiyorum ve kodda kullanıcı adı/şifre vermek istemiyorum çünkü bunu bilmem. Ama yine de şu kodu şanssız denedim.

System.Uri uri = new Uri(myUrl); 
byte[] authData = System.Text.UnicodeEncoding.UTF8.GetBytes("user: passwd"); 
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + "\r\n"; 
myBrowser.Navigate(uri, "", null, authHeader); 

Herhangi fikirleri nasıl böyle çok kullanıcı aracısı gibi diğer detayları ile başlığını ayarlamak için? başlıkta kullanıcı ajanı eklemek istiyorsanız

cevap

4

, muhtemelen böyle bir şey yapmalıdır:

string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + 
     "\r\n" + "User-Agent: MyUserAgent\r\n"; 

Sadece her başlık bir satır başı satır besleme çift ile sonlandırılmalıdır unutmayın.

+0

Bu sadece bir önseziydi. Kullanıcı aracısı belirtmediğim için 401 üretilebilir miyim? Bir http üstbilgisinde zorunlu olan şeyler nelerdir? – NLV

+0

@NLV: Sizin durumunuzda neyin gerekli olduğundan emin değilim. IE'den navigasyonun işe yaradığını mı söylüyorsunuz? IE'den gelen istekte başlıkları kontrol edin. –

+0

Aynı kodları bir windows form uygulamasında denedim. Açık olarak kimlik doğrulama başlığını boş olarak ayarlansam ve sayfanın denetiminde sayfayı yükleyebilmemesini istesem bile. Ve web uygulaması anonim erişim için yapılandırılmamış. Bunu açıklayabilir misin? Ben geçerli auth başlıkları ne olursa olsun cevap vermeme isteğini ayarlıyorum düşünüyorum. – NLV