2010-02-04 54 views
1

,我需要做一个简单的程序,在给定的凭据某些网站记录,然后导航至某个元素(链接)。 这甚至可能(我的意思是这个Authlogin的东西)?的HttpRequest:通过AuthLogin

编辑:抱歉 - 我在我的公司机器上,我无法点击“投票”或“添加评论” - 页面显示“完成,但页面出现错误”(IE ..)。我很欣赏你的回答和评论,你帮了我很多!

+0

@Petr:我非常逗乐,看你从来没有投票,或上或下,永远!你确实知道你可以在答案旁边的零点上方和下方按下那些箭头? :P – 2010-02-04 09:07:33

+1

@Ruben,也许他也不读评论。 – Benny 2010-02-04 09:16:34

+0

@Benny:嘿,让我们不要启动争吵呜呜这里 - 有些人没有时间喋喋不休和评论整天:d至少他接受并计数的东西......(他将有大味道接受我的:D)也许我们需要一个“阅读的评论”徽章去alonside他评论员之一[他已经]。任何见解,Petr:P – 2010-02-04 09:23:23

回答

0

这将一定程度上取决于登录过程是如何管理的。这实际上是通过网络表单完成的吗?如果是这样,您需要发布表单,就像普通浏览器一样。

如果它通过HTTP认证完成后,你应该能够设置web请求的凭据,告诉它预先验证,所有应该很好。

0

肯定。有可能的。

看到下面的代码:

 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri); 
     req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; 
     req.Credentials = new NetworkCredential("admin", "admin"); 
     req.PreAuthenticate = true; 
1

主要要做的事情是:

  1. 开始使用Fiddler看到需要发送和我们谈论什么样的方式
  2. 假设什么一个正常的网络表单,您可能需要使用CookieContainerWebRequest s来接受来自登录请求的cookie,然后在发送子查询时重新提供它们ENT请求(例如上下文不会自动地由HttpWebRequest维护): -

    CookieContainer _cookieContainer = new CookieContainer(); 
    ((HttpWebRequest)request).CookieContainer = _cookieContainer;