2

网页

<body>
  <form id="form1" action="Default.aspx" method="post">
    <input runat="server" id="txtuser" type="text" />
    <input runat="server" id="txtpwd" type="password" />
    <input type="submit" value="Login"/>
 </form>
</body>

代码隐藏

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
        Login();
   }
}

private void Login()
{
   if (checkUser(Request.Params["txtuser"],Request.Params["txtpwd"]))
   {
        Response.Redirect("Success.aspx");//if success
   }
}

我正在为遇到问题的旧移动版本(如诺基亚 N70)开发网页。当我提交我的用户名和密码时,请检查用户返回 true 以重定向到新页面。但它不会重定向到success.aspx. 所以我在Response.Redirect代码上调试点,它可以停在那里,我继续运行成为错误,因为让用户名和密码为空。然后我意识到它加载了两次页面。如何解决?

4

2 回答 2

3

您想在有 PostBack 时登录。不是反过来。

改变

if (!Page.IsPostBack)

if (Page.IsPostBack)

确保您已AutoEventWireup在 Code Front 中设置为 true:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"...

否则永远不会触发 Page_Load。

于 2012-08-30T08:28:24.547 回答
2

您应该以正确的方式使用表单身份验证,就像这里解释的那样

你应该为你的重定向做这样的事情:

if (checkUser(userName.Text, password.Text))
{
    FormsAuthentication.RedirectFromLoginPage(userName.Text, false);
}
于 2012-08-30T08:38:11.807 回答