0

因此,我将一些参数发布到 .NET 网站。该网站需要身份验证,因此它将用户重定向到登录页面。如果 action 包含登录页面,则 post 参数通过,但如果 action 不包含登录页面,则 post 参数不通过。

<form action="http://localhost:54060/mywebsite/" method="post">
    BAC: <input type="text" name="partnerID" /> <br />
    <input type="submit" name="submitBtn" value="Login" />
    <input type="hidden" name="partnerType" value="test" />
    <input type="hidden" name="userID" value="test" />
    <input type="hidden" name="firstname" value="test" />
    <input type="hidden" name="lastname" value="test" />
</form>

我正在捕获 Session_Start Global asax 页面事件中的 post 参数,并使用以下方法拉取它们:this.Request.Params["partnerID"]. 如果像上面那样进行调用,则它为空,但如果登录页面包含在操作中,则包含参数。

注意:该表格位于 1 个网站中,并且正在提交到另一个网站。它们位于不同的服务器上。我无法控制提交表单(并将其提交到 iframe)的网站。我确实可以控制接收表单提交的 .NET 网站。

为什么当表单提交到网站而不是提交到页面时,这些参数没有通过。

4

1 回答 1

1

方法Session_Start只执行一次:当您的会话开始时;)因此,下次您访问同一页面(或任何页面)时,该方法将不会执行,因为您已经拥有会话。当您从页面回发时Session_Start将不会执行,因为它在页面呈现时执行,如果那是您的第一页。

如果您确实必须处理 Global.asax 中提交的值,请使用Application_BeginRequest. 但是,我认为应该以其他方式完成,即让您的表单始终提交到您处理传入的值的特定页面。

于 2013-04-23T21:15:11.523 回答