2016-03-31 15 views
1

Kullanıcının sunucuya bir masaüstü (Windows formu) uygulamasından oturum açmasına izin vermek için bir Web Tarayıcı denetimi kullanıyorum. Başarılı yanıttan sonra sunucu, yanıtı Güvenlik belirtecini içeren XML olarak gönderir ancak WebBrowser denetiminden bu xml'yi okuyamıyorum. tarayıcı kontrolü, XML'i işleyemediğim tuhaf HTML'ye dönüştürür. İşte benim Kod geçerli: -.NET WebBrowser Denetimi XML Sunucusu yanıtını nasıl doğru okur?

var webBrowser = new WebBrowser 
     { 
      Dock = DockStyle.Fill 
     }; 
     webBrowser.DocumentCompleted += webBrowser_DocumentCompleted; 
     webBrowser.Navigate(url); 

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     var browser = sender as WebBrowser; 
     if (browser != null) 
     { 

      HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
      doc.LoadHtml(browser.DocumentText); 
      var appNode = doc.DocumentNode.SelectNodes("//myTag"); 
     } 
    } 

ve bu

<MyCustomXml> 
 
<securityToken>RETERET-SDSDSD-DSFSDFS-SDASDAS-ASDASDASDASD</securityToken> 
 
<organizationUrl>http://myOrganization.Com/</organizationUrl> 
 
</MyCustomXml>

+0

Bu sorun için herhangi bir yardım – yo2011

+0

Daha açık olmanız gerekir. Ne garip html sunucusu geri geliyor, beklenen xml, neden tarayıcıyı hiç kullanmıyorsunuz ve doğrudan sunucu çağırmıyorsunuz? – Evk

+0

Kullanıcının oturum açmasına izin vermek için web tarayıcısı kullanıyorum ve sunucudan xml yanıtı alıyorum ama webbrowser belgesini okuduğumda html i – yo2011

cevap

1

WebBrowser denetimi için bir HTML sayfasına alınan XML dönüşümleri i sunucusundan alınan benim XML daha kullanıcı dostu bir ekrana sahip olmak. Bu ekranın kaynağında bakarsanız, HTML olarak yorumlanır bu belgeyi göreceksiniz

screenshot1

(HTML eklenti not: Ben IE ile http://www.w3schools.com/xml/note.xml ziyaret Örneğin, ben bu interaktif ekranı göreceksiniz etiketleri ve satır içi CSS):

screenshot2

Bu kod sadece IE yaptığı gibi HTML olarak yorumlanır çünkü size WebBrowser ayıklamak ve bu belge görünür hale getirmek için bir WebBrowser olarak görev yaptığı işi budur kullanıcı. Bu özelliği devre dışı bırakmanın bir yolu olduğunu düşünmüyorum.

Benim düşüncem, kimlik doğrulama sistemini yanlış bir şekilde uygulamaya çalıştığınızdır, XML'yi WebBrowser'da görüntülemek ve onu çıkarmaya çalışmak kötü bir fikirdir. Eğer gerçekten bir WebBrowser sistemi kullanmak istiyorsanız, sunucunuzdan düz bir metin yanıtı kullanmayı tavsiye ederim (bkz. HTTP üstbilgisi Content-Type), bu şekilde WebBrowser bunu yorumlamaya çalışmaz. Ayrıştırma ile ilgili olarak, iyi biçimlendirilmiş bir XML belgesiyle çalışırken, HtmlAgilityPack yerine XmlDocument api kullanmanızı öneririm.

Son olarak, sizinkiyle aynı sorundan söz eden this thread numaralı telefonu incelemenizi öneririz.

İlgili konular