Paradise GTP
Premium
You must be registered for see images attach
[TABS]
[TAB=Sommaire]I - Création de la base de donnée
II - Organisation de la table
III - Design du logiciel
IV - Inscription
V - Connexion
VI - Suppression
VII - Conclusion
[/TAB]
[TAB=Liens utile]MySql.Data.dll :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
|
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
|
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Code source :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
|
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
|
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
[/TAB]
[TAB=Crédits]Merci à ces personnes qui m'ont aidées plus ou moins pour que je vous propose ce tutoriel.
- @Baptiste ( C# )
- @Maxence' SEC ( SQL )
- @Rivals ( SQL )
- @Snizah ( GFX )
[/TAB]
[/TABS]
I - Création de la base de donnée
Vous devez être inscrit pour voir les médias
La première chose à faire pour ce tutoriel est de créer une base de donnée afin de stocké les utilisateurs qui se seront inscrit sur votre logiciel.
Pour ce faire il faut déjà un hébergement, je vous conseil
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
qui fonctionne très bien ( et est gratuit ).Une fois votre compte créer c'est simple, vous vous rendez dans l'onglet Admin puis ensuite MySQL dans le menu sur la gauche.
Ensuite nous allez créer la base de donnée, donc vous allez remplir simplement comme ceci :

Donc voila la base de donnée est créer, maintenant il faut créer un utilisateur.
Donc vous cliquez sur Gestion des utilisateurs, normalement vous en avez un mais on va l'utiliser, on va en créer un nouveau.

Voila donc la base de donnée et l'utilisateur sont créer.
Ensuite on ce rend sur
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
afin de se connecter.Vous voila sur le PhpMyAdmin maintenant on créer la table. Donc vous cliquez sur le nom de votre base de donnée.

II - Organisation de la table
Pour moi c'est boosterzlobby_sql donc vous mettez le nom que vous voulez, moi je vais vous montrez avec 6 colonnes si vous voulez en mettre plus.

Donc vous mettez ceci ( sauf si vous ne voulez pas de sa ) :

( NB : Les commentaires ne sont pas obligatoire )
Donc voila la partie sur internet est faites.
III - Design du logiciel
Donc je vais faire un design très basique mais après je vous laisse faire comme vous voulez vous.
Il faudra donc 3 Forms
- Inscription
Alors le design à faire :

La textbox de l'utilisateur : tb_user
La textbox du mot de passe : tb_pass
La textbox du mot de passe : tb_mail
Ainsi que un dateTimePicker ou on ne changera pas le nom.
Et le bouton.
- Connexion
Pour la seconde Form, on fait ce design :

La textbox de l'utilisateur : tb_user
La textbox du mot de passe : tb_pass
Ainsi que le bouton et un linklabel mais eux le nom de change pas.
- Suppression
Lui est très simple on met un seul bouton, que on ne renommera pas.
Ensuite si la Form de votre page de connexion est la Form2 on va changer pour que elle s'ouvre en premier.
Pour faire ceci on va dans Program.cs et on change le Form1 par le nom de la Form de connexion.

IV - Inscription
Vous devez être inscrit pour voir les médias
Donc vous ajoutez la référence que je vous ai fournis ensuite on la déclare :
Code:
using MySql.Data.MySqlClient;
Ensuite on va définir les propriétés de notre base de donnée
Code:
string sDatabase = "server=;database= ;userid=;password=";
Donc bien entendu vous le remplissez avec vos informations que vous avez mise dans la création de la base de donnée
Ensuite on va mettre le code pour obtenir l'HWID du PC de la personne qui créer le compte comme ceci le compte n'ira que sur un seul PC.
Ensuite on va mettre le code pour obtenir l'HWID du PC de la personne qui créer le compte comme ceci le compte n'ira que sur un seul PC.
Code:
private String HWID()
{
string HWID = string.Empty;
ManagementClass Management = new ManagementClass("win32_processor");
ManagementObjectCollection MObject = Management.GetInstances();
foreach (ManagementObject mob in MObject)
{
if (string.IsNullOrEmpty(HWID))
{
HWID = mob.GetPropertyValue("processorID").ToString();
break;
}
}
return HWID;
}
Ensuite pour hash le mot de passe
Code:
private String HashPassword(String Password)
{
string _salt = "X(7o1gS!$@b2HL_K(rxh";
using (var sha = SHA512.Create())
{
var computedHash = sha.ComputeHash(Encoding.Unicode.GetBytes(Password + _salt));
return Convert.ToBase64String(computedHash);
}
Donc, vous allez avoir des erreurs donc vous devez ajouter System.Management qui est dans les assembly de Visual Studio puis déclarer leurs utilisation
Code:
using System.Security.Cryptography;
using System.Management;
Ensuite ont met ce code dans le bouton
Code:
if (tb_user.Text == "")
{
MessageBox.Show("Nom d'utilisateur non renseigné", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (tb_pass.Text == "")
{
MessageBox.Show("Mot de passe non renseigné", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (tb_mail.Text == "")
{
MessageBox.Show("Adresse mail non renseignée", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
if (tb_mail.Text.Contains("@"))
{
string Pass = HashPassword(tb_pass.Text);
string myConnection = sDatabase;
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand("INSERT INTO `Table`(`Utilisateur`, `Password`, `Mail`, `Inscription`, `HWID`) VALUES('" + tb_user.Text + "', '" + Pass + "', '" + tb_mail.Text + "', '" + dateTimePicker1.Text + "', '" + HWID() + "')", myConn);
MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
new Form1().Show();
this.Hide();
}
else
{
MessageBox.Show("Adresse mail incorrect", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Donc il vous faut faire attention à cette ligne
Code:
MySqlCommand SelectCommand = new MySqlCommand("INSERT INTO `Table`(`Utilisateur`, `Password`, `Mail`, `Inscription`, `HWID`) VALUES('" + tb_user.Text + "', '" + Pass + "', '" + tb_mail.Text + "', '" + dateTimePicker1.Text + "', '" + HWID() + "')", myConn);
Si vous n'avez pas mit dans la table comme moi, il vous faudra faire la modification. Mais surtout modifier le nom de la table, moi c'est Table si vous c'est autre chose modifier simplement le mot.
Voila le rendu
V - Connexion
Donc, maintenant que les utilisateurs peuvent créer leurs comptes il faut que ils puissent se connecter non ?
Alors on va commencé ici aussi par la déclaration des extensions.
Voila le rendu

V - Connexion
Vous devez être inscrit pour voir les médias
Donc, maintenant que les utilisateurs peuvent créer leurs comptes il faut que ils puissent se connecter non ?
Alors on va commencé ici aussi par la déclaration des extensions.
Code:
using System.Management;
using System.Security.Cryptography;
using MySql.Data.MySqlClient;
Alors on fait comme pour l'inscription
Code:
string sDatabase = "server=;database= ;userid=;password=";
Puis les deux fonctions
Code:
private String HWID()
{
string HWID = string.Empty;
ManagementClass Management = new ManagementClass("win32_processor");
ManagementObjectCollection MObject = Management.GetInstances();
foreach (ManagementObject mob in MObject)
{
if (string.IsNullOrEmpty(HWID))
{
HWID = mob.GetPropertyValue("processorID").ToString();
break;
}
}
return HWID;
}
Code:
private String HashPassword(String Password)
{
string _salt = "X(7o1gS!$@b2HL_K(rxh";
using (var sha = SHA512.Create())
{
var computedHash = sha.ComputeHash(Encoding.Unicode.GetBytes(Password + _salt));
return Convert.ToBase64String(computedHash);
}
Ensuite dans les propriétés de l'application on va ajouter ceci :

Voila, une fois fait on peut mettre le code dans le bouton.
Code:
WindowsFormsApplication18.Properties.Settings.Default.User = tb_user.Text;
string Password = HashPassword(tb_pass.Text);
try
{
string myConnection = sDatabase;
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand(" select * from VOTREBDD.VOTRETABLE where Utilisateur='" + this.tb_user.Text + "' and Password='" + Password + "' and HWID='" + HWID() + "' ;", myConn);
MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
int count = 0;
while (myReader.Read())
{
count = count + 1;
}
if (count == 1)
{
new Form3().Show();
this.Hide();
}
else
MessageBox.Show("Connexion refusé");
myConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Ici, il vous faut faire attention à cette ligne
Code:
MySqlCommand SelectCommand = new MySqlCommand(" select * from VOTREBDD.VOTRETABLE where Utilisateur='" + this.tb_user.Text + "' and Password='" + Password + "' and HWID='" + HWID() + "' ;", myConn);
Vous devez modifier " VOTREBDD.VOTRETABLE " donc moi cela donne : " boosterzlobby_sql.Table " Comme ma BDD ce nome : boosterzlobby_sql et ma table, Table
Puis ici vous modifier par le nom de votre projet moi c'est WindowsFormsApplication18
Puis ici vous modifier par le nom de votre projet moi c'est WindowsFormsApplication18
Code:
WindowsFormsApplication18.Properties.Settings.Default.User = tb_user.Text;
Voila ensuite dans votre petit linklabel vous mettez
Code:
new Form1().Show();
this.Hide();
VI - Suppression
Vous devez être inscrit pour voir les médias
Donc cette partie sera la plus courte.
Alors on commence comme les autres Form par ajouter l'utilisation de l'extension.
Code:
using MySql.Data.MySqlClient;
Oui, que elle à mettre ici. Ensuite on met les informations de notre BDD.
Code:
string sDatabase = "server=;database= ;userid=;password=";
Puis ensuite, simplement dans le bouton on met
Code:
string myConnection = sDatabase;
DialogResult retour = MessageBox.Show("Êtes vous sur de vouloir supprimé votre compte ?", "Dernière chance", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (retour == DialogResult.OK)
{
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand("DELETE FROM `Table` WHERE Utilisateur = '" + WindowsFormsApplication18.Properties.Settings.Default.User + "'", myConn);
MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
DialogResult retour2 = MessageBox.Show("Compte supprimé !", "Succès", MessageBoxButtons.OK, MessageBoxIcon.Information);
if (retour2 == DialogResult.OK)
{
new Form1().Show();
this.Hide();
}
}
else if (retour == DialogResult.Cancel)
{
MessageBox.Show("Compte non supprimé !");
}
Donc, la pareil il faut faire attention à une phrase qui ne vous dira pas d'erreur.
Code:
MySqlCommand SelectCommand = new MySqlCommand("DELETE FROM `Table` WHERE Utilisateur = '" + WindowsFormsApplication18.Properties.Settings.Default.User + "'", myConn);
Il vous faut mettre votre nom de table à la place de " Table " et le nom de votre projet à la place de " WindowsFormsApplication18 "
VII - Conclusion
Donc voila le tutoriel s'achève là.
Donc ceci n'est pas sécuriser car n'importe qui peut décompiler le logiciel pour récupérer les informations de la BDD, donc pour les logiciels payant oublier, privatiser la connexion SQL-PHP, mais pour un logiciel gratuit pourquoi pas.
Si vous avez besoin d'aide ou une question je répondrais de mon possible.
Si vous ne comprenez pas veuillez d'abord regarder la source avant de demander de l'aide.
Merci de votre lecture !
VII - Conclusion
Donc voila le tutoriel s'achève là.
Donc ceci n'est pas sécuriser car n'importe qui peut décompiler le logiciel pour récupérer les informations de la BDD, donc pour les logiciels payant oublier, privatiser la connexion SQL-PHP, mais pour un logiciel gratuit pourquoi pas.
Si vous avez besoin d'aide ou une question je répondrais de mon possible.
Si vous ne comprenez pas veuillez d'abord regarder la source avant de demander de l'aide.
Merci de votre lecture !
Dernière édition: