语言:c# 
        框架:2.0 
        WebServer:IIS 6.0         需要做个重定向,由于安全问题,不能通过向客户端输出form表单来实现重定向。 
        同时又由于必须以POST形式提交参数,因此又不能使用Response.Redirect()。 
        而且重定义目标地址并非源站点(或虚拟目录)下页面,也就不能使用url重写。         大致期望的流程是这样的 
        客户端POST数据到www.siteA.com/default.aspx 
        default.aspx对数据进行加工(增删改)后,带参数(POST)重定向到www.siteB.com/default.aspx <-这步是服务器端的,客户端不知道 
        客户端POST数据后打开了www.siteB.com/default.aspx页面进行后续操作。         请教各位有什么高招?

解决方案 »

  1.   

    Server.Transfer 不支持跨站点重定向啊
      

  2.   

    如何动态构建FORM表单提交到另一个页面
    http://topic.csdn.net/u/20090427/16/7A11B262-046A-491B-94B1-3E06BD6585A9.html
      

  3.   

    大哥,你没好好看我写的内容,不能用fORM,不能让客户端截取到数据
      

  4.   

    default.aspx对数据进行加工(增删改)后,带参数(POST)重定向到www.siteB.com/default.aspx 
      

  5.   

    需要做个重定向,由于安全问题,不能通过向客户端输出form表单来实现重定向。 
    同时又由于必须以POST形式提交参数,因此又不能使用Response.Redirect()。 
    而且重定义目标地址并非源站点(或虚拟目录)下页面,也就不能使用url重写。 
      

  6.   

    那你设置本页 action 为目标页,post 提交过去
      

  7.   

    需要postback的,后台还要再加工的,提交目标页参数都要变
      

  8.   

    Response.Redirect 到一指定页 ,然后由指定页 post 到实际目标页
      

  9.   

    "指定页 post 到实际目标页" 不又把保密信息发给客户端了嘛
      

  10.   

     你在页面加载的时候 也就是page_load 的时候 给控件赋值然后输出一段脚本,作用是 在 html 加载完毕后  立即提交表单到指定页
      

  11.   

    你使用Server.Transfer  不用跳转
      

  12.   

    如果你是以XML形式传递数据,建议使用WebRequest来传递,指定HttpWReq.Method = "POST";
      

  13.   

    拿到客户端传过来的参数后-处理-再使用httpwebrequest来向目标页提交。处理这一部在服务器端,无法查看源文件得到处理后的参数,但是可以使用firebug这些来查看post数据。
      

  14.   


    你的方法也尝试过,由服务器请求目标,然后将Response返回给客户端,但有个致命的缺陷,如果目标页需要再进一步操作,比如输入密码时,你这方法就没办法实现了。
      

  15.   


    需要跨站点呃。。目标地址是别人公司网址比如,www.google.com
      

  16.   

    我的意思 是 你先使用 Server.Transfer   转到中转页,然后 中转页post 到目标页
      

  17.   


    请问你的“中转页post 到目标页” 是由客户端完成,还是服务器端完成?如果客户端完成,那么数据就泄漏了
    如果服务器完成,那和目标页的网络连接,变成了我服务器与目标页的连接,客户端没办法进一步操作。
      

  18.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:Button ID="btn" runat="server" onclick="btn_Click" />
        </form>
    </body>
    </html>protected void btn_Click(object sender, EventArgs e)
        {
            Server.Transfer("Transit.aspx");
        }
      

  19.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body onload='document.getElementById("form2").submit();'>
        <form id="form1" runat="server">    
        </form>
        <form id='form2' action="Target.aspx" method="post" >
        <%=str %>
        </form>
    </body>
    </html>protected string str = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            str = "<input type='text' name='txt' value='post' />";    }
      

  20.   

    Target.aspx.csprotected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(Request.Form["txt"]);
        }
      

  21.   


    输入密码我想也应该是由客户端通过浏览器中输入的,所以密码你在处理过程中一样可以拿到,直接按post格式传递上去应该没有问题。
      

  22.   


    也想过,目标页是安全级别很高的网站,不知道行不行呢。
    考虑过用C#实现一个web代理程序,代理目标页算了,不过实现起来困难。