2 votes

Pourquoi mon bouton d'envoi se soumet-il deux fois ?

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

Code-behind

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

Je suis en train de développer une page web pour une ancienne version mobile (comme le Nokia N70) et je rencontre un problème. Lorsque je soumets mon nom d'utilisateur et mon mot de passe, la vérification de l'utilisateur renvoie true pour rediriger vers une nouvelle page. Mais il ne redirige pas vers success.aspx . Je débogue donc sur le point Response.Redirect il peut s'arrêter là et je continue à exécuter une erreur parce que le nom d'utilisateur et le mot de passe sont nuls. Puis je me suis rendu compte qu'il a chargé la page deux fois. Comment le résoudre ?

3voto

Sani Huttunen Points 10433

Vous voulez vous connecter quand il y a un PostBack. Et non l'inverse.

Changement

if (!Page.IsPostBack)

à

if (Page.IsPostBack)

Assurez-vous que vous avez défini AutoEventWireup à true dans Code Front :

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

sinon le Page_Load n'est jamais déclenché.

2voto

slfan Points 4541

Vous devez utiliser l'authentification par formulaire de manière appropriée, comme expliqué ci-dessous. ici

Vous devriez faire quelque chose comme ça pour votre redirection :

if (checkUser(userName.Text, password.Text))
{
    FormsAuthentication.RedirectFromLoginPage(userName.Text, false);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X