我要做个ASP.NET的网站,用户提供了jsp网站的用户名和密码,要在我的页面上直接打开jsp的网站登录。2个网站在同一内网没有域名,使用IP登录的。JSP是已经发布的不能改这个网站提供接口。
看过jsp的和ASPsession差不多,首次登录分配了jseesession的cookie,登录后每次都发送这个cookie我现在想这样
1.用脚本完成,在页面中放入iframe连接到jsp的登录页,然后用脚本输入用户和密码自动登录。但是脚本不能跨域访问,所以不能操作frame中的内容。2个网站都没域名,都是内网的用IP访问。2.后台HTTPREQUEST来访问,这个是已经实现了登录,但是不能转到界面上
 HttpHelper helper = new HttpHelper();            helper.AllowAutoRedirect = false;
            string result = helper.GetStrings(firstpage);
            string newurl = Regex.Match(result, "href=\"(.*?)\"").Groups[1].Value;
            
            result = helper.GetStrings(newurl.Replace("&#59;", "?"));
            helper.AllowAutoRedirect = true;
            result = helper.PostStrings(loginpage, string.Format(loginpage_post, "lhb", "Abc123", GetHostIP()));
           // helper.GetStrings();
            result = helper.GetStrings("http://10.70.85.70/frameweb/_index.jsp");
            foreach (System.Net.Cookie ck in helper.Cookies.ToCookieCollection())
            {
                Response.Cookies.Add(new HttpCookie(ck.Name,ck.Value));
                //Response.Redirect("http://10.70.85.70/frameweb/_index.jsp");
                Response.Write("<script>var Days = 30; var exp = new Date();document.cookie =\"" + ck.Name + "=" + ck.Value + "  \";/*document.domain=\"." + ck.Domain.ToString() + "\";*/document.cookie.domain=\"." + ck.Domain.ToString() + "\"; expires=exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);window.open('http://10.70.85.70/frameweb/_index.jsp');</script>");}问题是不能实现界面的跳转。先建立的cookie在访问jsp页面时并不发送过去。

解决方案 »

  1.   

    不改jsp而又不清楚这个jsp内部的权限是怎么实现的。。永远也不可能实现sso也许我说的绝对了点
      

  2.   

    sso是专门有一个服务器用来做用户的。。用户登录之后会在这个服务器上生存一个凭证。。用户进入其他站点的时候检测这个凭证,然后在产生令牌。。
      

  3.   

    别人的JSP的系统已经实现了,我在想要么改cookie  要么用后台登录后使前台发送后台HTTPREQUEST的相同JESSSION。比如说我们想登录ASP.NET的系统,WEB服务器在你登录后应该是只认你发过去的ASPNET_SESSIONID的
    我后台新建一个HTTREQUEST 实现登录 并获取了对应的cookie (ASPNET_SESSIONID)接下来怎么把页面请求该网站时发送这个cookie (ASPNET_SESSIONID)?
    我想法是这样就是不知道怎么才能实现。
      

  4.   

    sso是专门有一个服务器用来做用户的 关于3楼的回答我很感谢  的却正规的SSO是有服务器或者接口的,我现在要做的不是正规的SSO  而是“页面的一个外挂”
      

  5.   


    的确不知道,但是每次他发回的信息只有一个jesssionid 的cookie我想可以认定他就是和ASP.NET类似的Cookie验证。也就是服务器通过这个ID判断你是哪位用户,至于用户的登录信息是存在服务器端的,如同ASP的SESSION 客户端只要用这个ID实现了登录建立了SESSION就行了,权限哪些就不用管了