当前位置:编程学习 > C#/ASP.NET >>

程序模拟自动登录

各位好,小弟项目中有一需求,需要模拟登录,登录成功后自动打开页面。为了说明方便特有以下约定
模拟登录的网址是另一家公司开发的系统我暂且称为系统B,地址为http://www.other.com
其中http://www.other.com/Login.jsp为登录页面
    http://www.other.com/Main.jsp为首页面
    http://www.other.com/Info.jsp为个人信息页面
如果使用系统B,用户将在Login.jsp上输入用户名和密码登录成功后页面会跳转进入Main.jsp,此时在点击Main.jsp页面上的“个人信息”按钮则进入Info.jsp页面即可查看个人信息

我的系统成为系统A,网址为http://www.myself.com
具体操作如下:
用户首先登录http://www.myself.com/index.aspx,在index.aspx面上有个Button按钮,当用户点击Button后,将触发Button_Click事件,程序将在后台模拟先进行http://www.other.com/Login.jsp的登录操作,然后新开一个页面打开http://www.other.com/Info.jsp

小弟目前已经实现了模拟Login.jsp页面的登录操作,并成功获取到登录成功状态后的http://www.other.com/Info.jsp页面源代码,我在index.aspx页面上放了一个TextBox,通过把获取来的源代码字符串放到TextBox中观察确认取回的代码是正确的。以上操作网上源代码很多都是先模拟登录再获取内容页面源代码的实例这并不是我最终想要的。我想要的是程序在模拟登录成功后能够自动新开一个页面在浏览器中打开http://www.other.com/Info.jsp。

请问这该如何操作?急等回复 --------------------编程问答-------------------- 向客户端输出javascript,用javascript打开目标页面 --------------------编程问答-------------------- 补充一点:系统B即另一家公司不提供开发交互接口,否则也不存在这问题了。另外Info.jsp页面中的信息是嵌入另一家公司开发的Active控件。因此如果有网友想说把我获取到的源代码做为字符串重新生成一个页面是不可行的。

我现在把问题再简化一下:如果手工操作,可先打开IE,在地址栏中写入http://www.other.com/Login.jsp?Name=user1&Pwd=0001后点跳转,页面会自动跳转到http://www.other.com/Main.jsp,待页面打开后,再在浏览器地址栏中写入http://www.other.com/Info.jsp点跳转,即可打开ACTIVE控件,其中有用户个人信息及其它保密资料。

我现在程序需要实现的是点击我页面http://www.myself.com/index.aspx上的Button,新开一个页面且在新页面中自动打开http://www.other.com/Info.jsp,后面的ACTIVE调用操作等等都交给IE了。最关键就在于后台如果模拟http://www.other.com/Login.jsp?Name=user1&Pwd=0001这个登录操作,然后在把COOKIE参数传给即将打开的新页面 --------------------编程问答-------------------- zhgroup,这个兄弟说的想了一下行不通,因为Login.jsp登录操作是程序在后台模拟完成的。而Info.jsp是需要在新开的IE页面中访问的。核心问题是如何将程序获取到的Login.jsp页面的cookie传递到新页面中。我的代码如下:
01 private Login()
02 {
03  string urlLogin = "http://www.other.com/Login.jsp?Name=user1&Pwd=0001";//以下为网站登陆页面
04  string postData = "";//
05  string urlPage = "http://localhost:8099/Fulltext.aspx";//以下为要访问的页面
06  string CookieInfo= GetCookie(urlLogin,postData);
07  HttpWebRequest MyRequest = (HttpWebRequest)WebRequest.Create(urlPage);
08  MyRequest.ContentType = "application/x-www-form-urlencoded";
09  MyRequest.Headers.Add("Cookie", CookieInfo);
10  MyRequest.AllowAutoRedirect = false;
11  HttpWebResponse MyResponse = (HttpWebResponse)MyRequest.GetResponse();
12  StreamReader sr = new StreamReader(MyResponse.GetResponseStream(), System.Text.Encoding.UTF8, true);
13  this.TextBox1.Text = sr.ReadToEnd();            
14 }

现在需要替换的是第11~13行,目前是把Info.jsp页面源代码写入TextBox1中,需要实现的是在新页面中自动打开Info.jsp

我想这样已经说的很清楚了。各位知道的就帮帮忙吧!给点实在的话,虚的不要 --------------------编程问答-------------------- 自己顶
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,