HTML页面
<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
代码上调试点,它可以在那里停止并继续运行成为错误,因为获取用户名和密码为null。然后我意识到它加载了两次页面。怎么解决?
答案 0 :(得分:3)
您希望在有PostBack时登录。不是相反。
更改
if (!Page.IsPostBack)
到
if (Page.IsPostBack)
确保在代码前端中将AutoEventWireup
设置为true:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"...
否则Page_Load永远不会被解雇。
答案 1 :(得分:2)
您应该以正确的方式使用表单身份验证,如解释here
你应该为你的重定向做这样的事情:
if (checkUser(userName.Text, password.Text))
{
FormsAuthentication.RedirectFromLoginPage(userName.Text, false);
}