使用C#HttpWebRequests登录网站,然后在浏览器中打开

使用C#HttpWebRequests登录网站,然后在浏览器中打开,c#,authentication,cookies,web,httprequest,C#,Authentication,Cookies,Web,Httprequest,我想自动化网站的登录过程 登录过程接受多个请求来收集cookie并基于这些cookie设置表单值。使用一些C#HttpWebRequests,我得到了最后一个HttpWebResponse返回我想要的数据的地方,这表明我已经成功地进行了身份验证 是否可以在浏览器中打开此会话,以便在页面打开时登录?我开始认为这不是因为我的会话绑定到一个JSESSIONID cookie,而且据我所知,没有办法在浏览器中手动设置它 谢谢。要提供答案: Cookie通过HTTP头传递给web服务器。浏览器在内部管理为

我想自动化网站的登录过程

登录过程接受多个请求来收集cookie并基于这些cookie设置表单值。使用一些C#HttpWebRequests,我得到了最后一个HttpWebResponse返回我想要的数据的地方,这表明我已经成功地进行了身份验证

是否可以在浏览器中打开此会话,以便在页面打开时登录?我开始认为这不是因为我的会话绑定到一个JSESSIONID cookie,而且据我所知,没有办法在浏览器中手动设置它

谢谢。

要提供答案:

Cookie通过HTTP头传递给web服务器。浏览器在内部管理为域设置的cookie,并根据所访问的域跟踪何时在HTTP请求中添加cookie。如果HTTP响应没有正确设置cookie,最新版本的流行web浏览器往往会阻止在其内部管理系统中注入cookie。因此,我不知道有哪种非黑客方式可以让你的C代码直接在浏览器中设置cookie

但是,

您可以尝试手动将会话cookie等添加到浏览器的HTTP请求中(这将是一个很好的实验,应该可以实际工作)。您可以使用Firefox的开发工具轻松完成这一任务。理论上,您应该能够通过这种方式“劫持”C#应用程序建立的会话

您也可以通过HttpWebResponse流维护会话,但我认为,除非您正在开发web浏览器,否则就不容易直观地解释标记。

要提供答案:

Cookie通过HTTP头传递给web服务器。浏览器在内部管理为域设置的cookie,并根据所访问的域跟踪何时在HTTP请求中添加cookie。如果HTTP响应没有正确设置cookie,最新版本的流行web浏览器往往会阻止在其内部管理系统中注入cookie。因此,我不知道有哪种非黑客方式可以让你的C代码直接在浏览器中设置cookie

但是,

您可以尝试手动将会话cookie等添加到浏览器的HTTP请求中(这将是一个很好的实验,应该可以实际工作)。您可以使用Firefox的开发工具轻松完成这一任务。理论上,您应该能够通过这种方式“劫持”C#应用程序建立的会话


您也可以通过HttpWebResponse流来维护会话,但除非您正在开发web浏览器,否则就不容易直观地解释标记。

Firefox允许您编辑HTTP请求头,因此,从技术上讲,您可以使用Firefox开发工具手动添加会话cookie值,然后发送经过编辑的HTTP请求。您的目的是简单地试验HTTP头吗?我的HTTP请求工作得很好。我可以在HTTP响应中返回经过身份验证的页面(我可以在响应流中看到我的用户名和“注销”之类的内容)。我希望能够在浏览器中打开此经过身份验证的页面,而不是在HttpWebResponse流中查看其html。然后,您需要手动将会话cookie等添加到浏览器的HTTP请求中。我不相信您可以直接在代码中实现这一点,但您可以使用Firefox的开发工具轻松地实现这一点。理论上,您应该能够通过这种方式“劫持”C#应用程序建立的会话。另外,浏览器在内部管理为域设置的cookie,并根据访问的域跟踪何时在HTTP请求中添加cookie。如果HTTP响应没有正确设置cookie,最新版本的流行web浏览器往往会阻止在其内部管理系统中注入cookie。因此,我不知道你的C#代码有没有一种非黑客方式可以直接在浏览器中设置cookie。Firefox允许你编辑HTTP请求头,因此从技术上讲,你可以使用Firefox开发工具手动添加会话cookie值,然后发送编辑后的HTTP请求。您的目的是简单地试验HTTP头吗?我的HTTP请求工作得很好。我可以在HTTP响应中返回经过身份验证的页面(我可以在响应流中看到我的用户名和“注销”之类的内容)。我希望能够在浏览器中打开此经过身份验证的页面,而不是在HttpWebResponse流中查看其html。然后,您需要手动将会话cookie等添加到浏览器的HTTP请求中。我不相信您可以直接在代码中实现这一点,但您可以使用Firefox的开发工具轻松地实现这一点。理论上,您应该能够通过这种方式“劫持”C#应用程序建立的会话。另外,浏览器在内部管理为域设置的cookie,并根据访问的域跟踪何时在HTTP请求中添加cookie。如果HTTP响应没有正确设置cookie,最新版本的流行web浏览器往往会阻止在其内部管理系统中注入cookie。因此,我不知道有哪种非黑客方式可以让你的C代码直接在浏览器中设置cookie。