2

Web ページの HTML ソースを取得する必要があります。この Web ページは、NTLM 認証を必要とする Web サイトの一部です。Internet Explorer は Windows のログイン資格情報を使用できるため、この認証はサイレントです。ユーザーに資格情報を手動で入力させずに、このサイレント認証を再利用する (つまり、Windows ログイン資格情報を再利用する) ことは可能ですか?

私が試したオプションは以下のとおりです。

string url = @"http://myWebSite";

//works fine
System.Diagnostics.Process.Start("IExplore.exe", url);

InternetExplorer ie = null;
ie = new SHDocVw.InternetExplorer();
ie.Navigate(url);
//Works up to here, but I do not know how to read the HTML source with SHDocVw


NHtmlUnit.WebClient webClient = new NHtmlUnit.WebClient(BrowserVersion.INTERNET_EXPLORER_8);
HtmlPage htmlPage = webClient.GetHtmlPage(url);
string ghjg = htmlPage.WebResponse.ContentAsString; // Error 401

System.Net.WebClient client = new System.Net.WebClient();
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy.Credentials = CredentialCache.DefaultCredentials;
// DefaultNetworkCredentials and DefaultCredentials are empty
client.Headers.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)"); 
string reply = client.DownloadString(url); // Error 401

HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
IWebProxy proxy = request.Proxy;
// Print the Proxy Url to the console.
if (proxy != null)
{
   // Use the default credentials of the logged on user.
   proxy.Credentials = CredentialCache.DefaultNetworkCredentials; 
   // DefaultNetworkCredentials are empty
}
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)";
request.Accept = "*/*";

HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream stream = response.GetResponseStream(); // Error 401
4

0 に答える 0