Clef de validation pour un logiciel C# [#TR]

Statut
N'est pas ouverte pour d'autres réponses.

Paradise GTP

Premium
Inscription
30 Juin 2013
Messages
4 271
Réactions
4 414
Points
24 105
RGCoins
519
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 :
704df1a48f5836d22aefec77987bf4f8.png

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;
Donc vous changer le WindowsFormsApplication12 par le nom de votre projet et si vous ne voulez pas le mot key vous mettez autre chose.
Code:
  bool valide = WindowsFormsApplication12.Properties.Settings.Default.valide;
Voila donc au lieu de mettre " WindowsFormsApplication12.Properties.Settings.Default.valide " pour vérifier si le compte est validé on mettra seulement " valide " ce sera plus simple.
13f7b61b5d75e7a81b80c1f4c2b89236.png

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

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;
b4763160743ee7b27bd7be0eb5347ee8.png

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();
Et dans le timer :
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 :
8d4bea93602b548478441f1e5e5b3dc3.png

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";
Donc dans la constante vous mettez les caractères que vous voulez qu'il soit possible d'avoir dans la clef de validation.
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);
  }
9dbe221b70ea6ba687bd15749c0e4cee.png


Voila ensuite pour la génération de la clef toujours dans le bouton OK on y rajoute :
Code:
  key = RandomString(8);
Donc moi ce sera 8 caractères si vous en voulez plus ou moins vous changer le 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.

 

Fichiers joints

merci bien pour ce beau topic :)
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut