C# Simpel login schermpje

Status
Niet open voor verdere reacties.

Prokrammer

Gebruiker
Lid geworden
29 sep 2013
Berichten
24
Ik heb een vraagje over C#, ik ben bezig met een simpel log in scherm maken.
de gebruikersnaam staat vast dus daar zit geen code achter, het moet als volgt:

zodra het wachtwoord goed is ingevuld in het tekstvak en op de button klik komt er een Messagebox die een welkoms bericht weergeeft. dit is gedaan en werkt, maar mijn probleem is
dat zodra het wachtwoord verkeerd is ingevuld er een messagebox moet worden komen met verkeerde invoer.
na 3 pogingen moet er een Messagebox komen met het bericht dat de het wachtwoord verkeerd is ingevuld voor de 3e keer en dat het tekstvak op slot slaat
de messagebox voor foutieve invoer werkt. het gene wat niet werkt is dat er een apart Messagebox verschijnt bij de 3e foute poging.
kan iemand mij helpen ?
 
Sorry C# dus, sorry dan kan ik je niet helpen, sorry als je teleurgesteld bent, ik dacht dat je het met VBS deed.

Veel succes
 
Heb effe een voorbeeld gemaakt.
Het is een console applicatie. maar het principe is hetzelfde
gewoon de console outs met messageboxen enzo wijzigen

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Wachtwoord
{
    class Program
    {
        static String _userName = "test"; // Voorbeeld Account
        static String _passWord = "123";

        static int poging = 0; // Hier hou ik het aantal pogingen bij

        static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("Gebruikersnaam: "); // Vraag naar de gebruikersnaam
                String userName = Console.ReadLine(); // Lees de naam
                Console.Write("Wachtwoord: "); // Vraag naar het wachtwoord
                String passWord = Console.ReadLine(); // Lees het wachtwoord
                if (userName != _userName || passWord != _passWord)
                {
                    poging += 1; // OEi... foute login.. pogin bijvoegen
                    if (poging == 3)
                    {
                        Console.WriteLine("[ERROR] 3 van de 3 pogingen!... YOU Are BANNED >:)");
                        Console.ReadLine();
                        break;
                    }
                    else
                    {
                        Console.WriteLine("[ERROR] Gebruikersnaam of wachtwoord incorrect [Poging " + poging + " van de 3]");
                    }
                }
                else
                {
                    Console.WriteLine("Welkom! Druk op ENTER");
                    Console.ReadLine();
                    break;
                }
            }
        }
    }
}

Wat is nu de kern?
Wel je hebt ergens waar je ziet "Oei foute login"
vervolgens heb je twee mogelijkheden:
- Je toont dat hij nog X aantal pogingen heeft
- Het aantal pogingen zijn op dus toon je een "Freeze" bericht

Dus wat je eigenlijk moet doen is in je 'if' statement waar je ziet of de login juist is,
nog een 'if' statement in nestellen die kijkt of het aantal pogingen 3 is ofzo.
Indien ja: Toon dan het freeze bericht
Indien neen: Toon het foute invoer bericht

zo gaat er steeds maar 1 bericht getoond worden

PS: Tip plaats C# in het vervolg hier ;) http://www.helpmij.nl/forum/forumdisplay.php/162-C-net deze is wat beter
voorzien voor C# ;)
 
Laatst bewerkt:
Thanks Maxim voor je reactie.

Ik heb het een beetje aangepast op de manier hoe wij het op school leren, nu zit ik alleen met het volgende probleem:

Zodra ik het correcte wachtwoord invoer blijft de message box opnieuw komen als ik op Oke klik.
Als ik het wachtwoord fout in voer krijg ik de melding het wachtwoord is incorrect, dan klik ik op oke dan krijg de volgende messagebox waarin de aantal foute pogingen in staan als ik weer op oke klik dan krijg weer de eerste messagebox met de melding wachtwoord incorrect waarna hij de pogingen op blijft tellen tot ik stop met debuggen. het geeft mij niet de mogelijkheid om opnieuw een wachtwoord in te voeren..

Code:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            String wachtwoord, ingevoerd;
            int poging;

            poging = 0;
            wachtwoord = "Hallo123";
            ingevoerd = (txtWachtwoord.Text);

            while (true)
            if (wachtwoord != ingevoerd)
            {
                MessageBox.Show("Incorrect, probeer het opnieuw.");
                poging = poging + 1;
            if (poging == 3)
            {
                MessageBox.Show("3e keer incorrecte invoer. Verander je wachtwoord.  ");
                txtWachtwoord.Enabled = false;
                btnLogin.Enabled = false;
            }
            else
            {
                MessageBox.Show("Wachtwoord incorrect [Poging "+ poging + " van de 3]");
                break;
            }
            }
            else
                {
                    MessageBox.Show("Wachtwoord correct. Welkom Jordy !");
                }      

      
            
        }
    }
}
 
Verplaatst naar C# :)
 
Tis 12 uur joh, bijna heel hm slaapt al ;) zal het morgen is bekijken, probeer al is de msgbox voor je if structuur van poging==3
Want deze word nu zowizo uitgevoerd ;)
 
Het verschil tussen Maximvdw versie en jouw versie is sowieso dat hij een console applicatie heeft en een while loop daar verder voor geen problemen zorgt,
en dat jij gebruik maakt van een GUI applicatie en de while loop ervoor zorgt dat de GUI (/thread) bevriest. Ook zou ik de indentatie een beetje aanpassen :P

Maar een mogelijke oplossing zou het onderstaande zijn:

[cpp]
private int poging = 0;
private int maxPoging = 3;
private string wachtwoord = "niet echt veilig";
// ...
private void button1_Click(object sender, EventArgs e) {
if (poging < maxPoging) {
string ingevoerd = txtWachtwoord.Text;
if (!wachtwoord.Equals(ingevoerd)) {
++poging;
MessageBox.Show("Aantal foutieve pogingen: " + poging);
} else {
MessageBox.Show("Ingelogd");
}
} else {
MessageBox.Show("Maximaal aantal pogingen bereikt!");
}
}
[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan