首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保留Request.Form数据

如何保留Request.Form数据
EN

Stack Overflow用户
提问于 2011-09-20 01:23:08
回答 2查看 622关注 0票数 1

这是关于在ASP.Net中正确转发POST变量的内容

为了强制所有连接使用https协议而不是http,我在Global.asax中插入了以下代码

代码语言:javascript
复制
If Not Request.IsSecureConnection Then
            Response.Redirect("https://" & Request.ServerVariables("HTTP_HOST") + Request.RawUrl)
End If

在我遇到使用POST提交的表单之前,这种方法工作得很好,使用上面的方法会破坏表单检索过程。

该网页是http://abc.com/page1.aspx格式的(该网页只接受POST表单数据)。现在,通过强制应用程序重定向到https,页面可以正确地重定向到https://abc.com/page1.aspx,但是,所有表单数据都会在此过程中丢失。

有没有办法存储和转发Request.Form数据??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-20 01:34:59

这几乎就是HTTP307状态码的作用。您可能希望考虑使用HTTP 307状态而不是302来重定向它们。

HTTP307表示重定向,并重新提交POSTed数据:

在这种情况下,请求应该用另一个URI重复,但以后的请求仍然可以使用原始URI。2与303不同的是,重新发出原始请求时不应更改请求方法。例如,必须使用另一个POST请求Reference重复POST请求

在ASP.NET中没有非常简单的方法可以做到这一点,但也不难。例如:

代码语言:javascript
复制
Response.StatusCode = 307;
Response.Status = "307 Temporary Redirect";
Response.AddHeader("Location","http://www.new-url.com");

或者,您也可以使用Server.Transfer(string)。Phil Haack给出了here的解释。对你来说,这可能是一个更简单的选择。

票数 1
EN

Stack Overflow用户

发布于 2012-03-10 11:02:14

代码语言:javascript
复制
Sub Session_OnStart
    If UCase(Request.ServerVariables("HTTPS")) = "OFF" Then
        sRedirect = "https://" & Request.ServerVariables("SERVER_NAME") &  Request.ServerVariables("PATH_INFO") & "?" & Request.Querystring
        Response.Redirect sRedirect
    End if
END Sub

将以上内容添加到您的global.asa或global.asax中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7474808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档