ASP.NET中HTTP和HTTPS页面之间的Request.Form

时间:2012-10-29 15:59:05

标签: asp.net http post https request.form

我有一个奇怪的情况,谷歌没有帮助我。我有一个简单的HTTP管理站点,他将数据发布到在HTTPS下运行的其他站点。 HTTP管理站点(我无法直接访问)通过基本POST发送信息,我正在尝试捕获HTTPS站点中的Request.Form值。它在dev中运行得非常好,因为接收站点不是在SSL下运行,但在prod中,我将Request.Form作为空。有人可以开导我吗?基本的HTTPS请求代码如下:

Dim nvm As NameValueCollection = Request.Form
Dim _idInscricao As String
Dim _Origem As String

litMensagem.Text = "Wait..."

    If nvm.Keys.Count = 0 Then
        litMensagem.Text = "Error recovering data. No keys found."
        Exit Sub
    End If

    For Each _Key As String In nvm.Keys
        If _Key.ToLower.EndsWith("idinscricao") Then
            _idInscricao = nvm(_Key)
        End If
        If _Key.ToLower.EndsWith("origem") Then
            _Origem = nvm(_Key)
        End If
    Next

    If _idInscricao Is Nothing OrElse String.IsNullOrEmpty(_idInscricao) _
        OrElse _Origem Is Nothing OrElse String.IsNullOrEmpty(_Origem) Then
        litMensagem.Text = "Error recovering data."
        Exit Sub
    End If

1 个答案:

答案 0 :(得分:3)

我发现了这个问题,因为我遇到了同样的问题,我需要感谢dana提出的小提琴。

使用Fiddler,我发现了发生了什么。我的页面是在HTTPS上,我发布的表单发布到HTTP。我无法弄清楚为什么发布页面上的表单结构是空的。

原来服务器无法找到该文件的http版本,并自动重定向到https版本,使用我的表单变量进行GET。它们不适用于带有GET的表单范围。 (FWIW,我正在使用CFML。)

一旦我将表单操作更改为发布到HTTPS,一切都像魅力一样。

-Jason