在getResponse之后,页面加载,但没有';t重定向

本文关键字:重定向 之后 getResponse 加载 | 更新日期: 2023-09-27 17:58:04

C#Asp.Net三重设计

我在一个项目中有两个aspx页面。出于试用目的,这两个页面在一个项目中,但将来它们将在单独的服务器上。

第一页上有一个按钮(Default.aspx),这是后面的代码:

protected void btnSub_Click(object sender, EventArgs e)
{
    var name = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
    WebRequest req = null;
    WebResponse rsp = null;
    try
    {
        const string uri = "http://localhost:52958/WebSite1/Default2.aspx";
        req = WebRequest.Create(uri);
        req.Method = "POST";
        req.ContentType = "text/xml";
        var writer = new StreamWriter(req.GetRequestStream());
        var post = "<VbDoc><Sicil>a</Sicil>,<AdSoyad>b</AdSoyad>,<SubeKodu>c</SubeKodu>,<SubeAdi>d</SubeAdi>,<Mail>e</Mail>,<Tel>f</Tel></VbDoc>";
        post = Encrypt(post);
        writer.Write(post);
        writer.Close();
        rsp = req.GetResponse();
    }
    catch
    {
        throw;
    }
    finally
    {
        if (req != null) req.GetRequestStream().Close();
        if (rsp != null) rsp.GetResponseStream().Close();
    }
}

在第二个页面(Default2.aspx)上,当我调试时,PageLoad会被激活,我可以读取加密的数据,但在page_load之后,页面就再也看不见了,旧的页面会保留下来。这是第二页的页面加载。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.Response.IsRequestBeingRedirected)
    {
        Page.Response.ContentType = "text/xml";
        var reader = new StreamReader(Page.Request.InputStream);
        var xmlData = reader.ReadToEnd();
        if (xmlData.Length != 0)
        {
            xmlData = Decrypt(xmlData);
            TextBox1.Text = xmlData;
        }
    }
}

---如果我在第一页使用Response.RRedirect,第二页会显示出来,但我会丢失加密的数据。

---我的老板不允许我使用查询字符串

我怎样才能阅读回复并显示第二页。

提前谢谢。

在getResponse之后,页面加载,但没有';t重定向

我用html post机制解决了它。cs如:

protected void btnSub_Click(object sender, EventArgs e)
{ 
    var post = "xml data";
    post = Encrypt(post);
    Label1.Text = post;
}

.aspx与类似

<body>
    <form id="form1" runat="server" >
        <asp:Label Visible="False" ID="lblEncrypted"  runat="server"></asp:Label>
    </form>
</body>
<body>
    <form  name="tokenForm" method="POST" action="http://localhost:52958/WebSite1/Default2.aspx">
        <input type="hidden" name ="token" value='<%=Label1.Text%>' />
        <input type="submit"  id="btnGonder" value="gonder"/>
    </form>
</body>