2

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
   }
}

問題に直面している古いモバイルバージョン(nokia N70など)のWebページを開発しています。ユーザー名とパスワードを送信したら、ユーザーがtrueを返すことを確認して、新しいページにリダイレクトします。ただし、にリダイレクトされませんsuccess.aspx。したがって、コードのポイントをデバッグします。そこでResponse.Redirect停止する可能性があり、ユーザー名とパスワードがnullになるため、実行を続行するとエラーになります。次に、ページが2回読み込まれたことに気付きました。それを解決する方法は?

4

2 に答える 2

3

PostBackがあるときにログインしたい。その逆ではありません。

変化する

if (!Page.IsPostBack)

if (Page.IsPostBack)

AutoEventWireupコードフロントで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 に答える