您好 我使用webbrowser控件登录此网址https://direct.gov.mb.ca/ppr/jsps/login/login.jsp 输入正确的用户名&密码我将被重定向但是被重定向到非成员页面,(我还没有登录),我使用了fiddler并在浏览器中完成了步骤并成功登录,这是我在程序和常规之间的fidler中看到的唯一差异浏览器,当我输入相同的URL时,在浏览器中,它会在标题中有2个cookie,这是非常奇怪的,不知道它在哪里获得这些cookie,但是我的程序显然在标题中没有cookie,也是在登录后常规浏览器响应中有5个cookie但我的程序只有2个cookie
我还想提一下,我的代码没有任何问题,因为我成功登录到其他https网站和http网站,这个网站有一些独特之处,我如何过来这个问题,已经3天了我无法弄清楚
编辑:代码
HtmlDocument doc = webBrowser1.Document;
HtmlElementCollection elemsName = doc.All.GetElementsByName("userName");
int count = elemsName.Count;
HtmlElement elmName = elemsName[0];
elmName.SetAttribute("value", "XXXXX");
HtmlElementCollection elemsPass = doc.All.GetElementsByName("password");
HtmlElement elmPass = elemsPass[0];
elmPass.SetAttribute("value", "XXXXX");
HtmlElementCollection elemsSubmit = doc.All.GetElementsByName("loginAction");
HtmlElement elmSubmit = elemsSubmit[0];
elmSubmit.InvokeMember("click");
但正如我所说,该代码适用于其他网站,如facebook.com
答案 0 :(得分:0)
您是否在使用“常规浏览器”打开页面之前尝试清理Cookie?如果是,饼干的数量是否仍然相同?
webbrowser和常规浏览器中的用户代理是否相同? 如果没有,您可以尝试使用以下方式设置它们:
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer,
int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;
private const string UserAgent = "Your User Agent";
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0);
您是否检查了https://direct.gov.mb.ca/ppr/actions/loginDispatcher的POST正文(TextView)?它们是一样的吗?