有没有一种内置的方式来让ASP.NET使用GET而不是POST来接受发布的数据

本文关键字:GET POST 数据 使用 ASP 一种 内置 有没有 方式 NET | 更新日期: 2023-09-27 18:18:28

我们有一个直接的ASP。NET web应用程序,带有登录页面。在用户输入凭据并提交表单之后,服务器将处理详细信息,如果成功,则Response.Redirect()将用户发送到Main Menu页面。(我们也有一个导航栏,用户可以通过类似的response.redirects导航到其他页面)

我们的一个客户正在设置IBM Data Power Web应用程序防火墙,并告诉我们POST后的重定向违反了RFC,因此应用程序无法工作。

这里有几个与Get/Post/Redirect相关的问题,它们表明,使用302响应作为Get或Post取决于浏览器的判断力。我还在公共互联网上找到了其他链接,使我相信这是IBM设备可以配置来处理的事情。

在我建议更改IBM设备配置之前,是否有任何基于配置(或简单代码)的方法来使一个平凡的登录页面(不使用asp.net登录控件)工作,其中GET请求可以发送登录凭据,或者使站点中的所有回发使用GET而不是POST?

还有,如果有人有使用这个IBM设备的技巧,我将不胜感激。

代码示例…

var userName = txtUserName.Text.Trim();
var password = txtPassword.Text.Trim();
var authResult = GetAuthService().AuthenticateUser(userName, password);
if (authResult == true)
{
 //set forms auth cookie
 Response.Redirect("Menu.aspx", false);
}
else
{
 lblError.Text = "Unable to login";
}

有没有一种内置的方式来让ASP.NET使用GET而不是POST来接受发布的数据

POST后重定向是许多实现中常见的机制。例如,考虑使用JAAS身份验证。您向用户呈现表单,并将其发送到'*/j_security_check' URL上。通过身份验证后,您将被重定向到资源页面,否则将被重定向到错误页面。

我不确定在datapower上配置了什么,但如果您的开发人员为此使用MPGW结构,那么他可以尝试在它的"高级"选项卡中找到两个属性。一个是"遵循重定向",另一个是允许"空请求"。

也许这对你有帮助