我们有一个带有登录页面的简单的 ASP.NET Web 应用程序。用户输入凭据并提交表单后,服务器会处理详细信息,如果成功,则 Response.Redirect() 将用户带到主菜单页面。(我们还有一个导航栏,用户可以通过类似的 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";
}