有没有办法在Html Agility Pack中验证Windows身份验证用户?

Lew*_*wis 1 c#

在HttpTests中,有一种方法可以使用身份验证

request.Credentials = CredentialCache.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud)

在Html Agility Pack中有类似的东西吗?我想测试我的localhost项目,但它收到了:

HTTP错误401.2 - 未经授权您无权查看此页面

Lew*_*wis 8

我找到了Jon Gallant的博客:http://blog.jongallant.com/2012/07/htmlagilitypack-windows-authentication.html#.UJEQam8xol8

创建一个新的HtmlWeb实例,创建一个新的WebProxy,将UseDefaultCredentials设置为true,在webload上创建一个名为document的新变量,将URL设置为GET请求,插入默认凭据并获取应用程序的系统凭据.

         var web = new HtmlWeb();
         web.PreRequest = delegate(HttpWebRequest webRequest)
         {
         webRequest.Timeout = 1200000;
         return true;
         };
         var proxy = new WebProxy() { UseDefaultCredentials = true };
         var doc = web.Load("http://localhost:2120", "GET", proxy, 
         CredentialCache.DefaultNetworkCredentials);


        var linksOnPage = from lnks in document.DocumentNode.Descendants()
                          where lnks.Name == "a" &&
                               lnks.Attributes["href"] != null &&
                               lnks.InnerText.Trim().Length > 0 

                          select new
                          {
                              Url = lnks.Attributes["href"].Value,
                              Text = lnks.InnerText
                          };

        linksOnPage.All(t => { Console.WriteLine(t.Text + " : " + t.Url); return true; });
Run Code Online (Sandbox Code Playgroud)