Paradise GTP
Premium
You must be registered for see images attach
Salut à tout le monde.
Je vous propose aujourd'hui un topic pour vous montrez une petite astuce en C# qui peut bien sur être adapté dans d'autre langage.
Alors, pour schématisé quand vous allez vous inscrire sur un site il vous demande un code à rentrer sur le site pour valider l'inscription et c'est ceci qui sera fait ici en C#.
You must be registered for see images attach
Alors moi je vais faire simple avec les propriétés d'application, mais vous si c'est un logiciel payant que vous faites je vous déconseille d'utiliser les propriétés d’application.
Alors pour commencé dans la paramètres d'application vous mettez :

key : String
valide : bool : False
Voila comme ça ce sera fait, afin de ne pas à chaque fois devoir mettre une longue ligne on va mettre ceci :
Code:
string key = WindowsFormsApplication12.Properties.Settings.Default.key;
Code:
bool valide = WindowsFormsApplication12.Properties.Settings.Default.valide;

Donc voila qui ai fait.
Ensuite on fait le design moi c'est un simple vous faites comme vous voulez

Alors le label ou il y a comme texte : " 00:05:00 " est le temps pour que la personne rentre le code après il sera expiré donc moi la cela représente 5 minutes vous mettez comme vous voulez. Il y a deux boutons non visible et le timer que vous ne voyez pas.
Ensuite la ou on a déjà mit du code on y rajoute :
Code:
private DateTime DateLancement;

Alors le bouton que vous voyez " OK " est le bouton pour envoyez le mail.
Dedans vous mettez ceci :
Code:
button2.Visible = true;
button1.Visible = false;
button3.Visible = true;
label3.Text = "CODE :";
DateLancement = DateTime.Now;
timer1.Start();
Code:
DateTime DateNow = DateTime.Now;
TimeSpan Difference = DateNow - DateLancement;
label1.Text = Difference.Hours.ToString("d2") + ":" + Difference.Minutes.ToString("d2") + ":";
label1.Text += Difference.Seconds.ToString("d2");
if(label2.Text == label1.Text)
{
timer1.Stop();
button2.Visible = false;
button1.Visible = true;
button3.Visible = false;
key = "";
label3.Text = "Adresse mail :";
MessageBox.Show("Temps écoulé");
}
Ce qui donne une fois cliquer sur le bouton :

Simplement le code du bouton " Annuler " est :
Code:
timer1.Stop();
button2.Visible = false;
button1.Visible = true;
button3.Visible = false;
label3.Text = "Adresse mail :";
Le bouton " OK " on y revient après
Ensuite pour généré la key.
On rajoute sa :
Code:
private readonly Random _rng = new Random();
private const string _chars = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789";
Ensuite on met
Code:
private string RandomString(int size)
{
char[] buffer = new char[size];
for (int i = 0; i < size; i++)
{
buffer[i] = _chars[_rng.Next(_chars.Length)];
}
return new string(buffer);
}

Voila ensuite pour la génération de la clef toujours dans le bouton OK on y rajoute :
Code:
key = RandomString(8);
Voila donc ensuite on va allez créer un compte mail.
Voila une fois fait vous ajoutez comme référence : System.Net et on la déclare :
Code:
using System.Net.Mail;
Ensuite dans le code de notre bouton 1 on y ajoute :
Code:
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("serveur smtp de votre hébergeur mail");
mail.From = new MailAddress("Votre mail");
mail.To.Add(textBox1.Text);
mail.Subject = "Code";
mail.Body = "Voici votre code de validation : " + key;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("Votre mail", "Votre mot de passe de mail");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
textBox1.Clear();
Puis pour finir dans le bouton de validation de code on met :
Code:
if(textBox1.Text == key)
{
MessageBox.Show("Clef rentrée avec succès");
valide = true;
key = "";
timer1.Stop();
WindowsFormsApplication12.Properties.Settings.Default.Save();
}
else
{
MessageBox.Show("Clef invalide");
}
You must be registered for see images attach
Voila ce tutoriel touche à sa fin.
Je vous partage donc la source.
Bonne journée.