使用HttpWebRequest登录失败

本文关键字:失败 登录 HttpWebRequest 使用 | 更新日期: 2023-09-27 18:27:20

如有任何帮助,我们将不胜感激。

我正在尝试使用我的用户和密码凭据以编程方式登录www.penson.com。

当使用浏览器(Chrome)进行此操作时,登录链接如下:https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?登录进度=是

使用此链接登录后,链接如下:https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?LI=Y

从那时起,我继续与网站合作…当然,每次我进入网站时,这个链接都会发生变化,其中包含一个不同的"Guid"。

现在,我在代码中所做的是:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
    "https://online.penson.com/Default.aspx?LoginInProgress=YES");
request.Credentials = new NetworkCredential(myUser, myPassword);
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = false;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = 0;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamResponse = response.GetResponseStream();
StreamReader sr = new StreamReader(streamResponse);
string result = sr.ReadToEnd();

"result"字符串如下所示(为了简化显示,我编辑了HTML结构):

对象已移动到href='/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?LoginProgress=YES’

从这个字符串中,我提取了"href"子字符串,然后我尝试创建另一个完整地址为的请求

https://online.penson.com/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?登录进度=是

这个不起作用,解析流响应表明我仍在登录网页中,实际上还没有继续转发下一个网页。

我正试图找出代码出了什么问题。我想我想得到"Guid"并将其解析为登录地址的想法并不准确。

有人能给我指一个特定的解决方案吗?

使用HttpWebRequest登录失败

使用Fiddler或Wireshark比较成功的请求(使用某些浏览器发出)和失败的请求。。。然后通过删除/添加任何需要的内容来模仿代码中的成功请求,Cookie通常是这种情况下的"罪魁祸首"之一——有时是特定的referer或类似的。。。

除了编码部分:检查他们的条款/条件是否禁止以这种方式自动登录!