Bonjour,
Je cherche des infos, pistes, idées sur la façon de gérer une authentification (login, password) dans une application Winform.
Le but étant de gérer des accès de lecture/écriture dans un datagrid "bindé" avec une base SQL Server.
Merci :)
Version imprimable
Bonjour,
Je cherche des infos, pistes, idées sur la façon de gérer une authentification (login, password) dans une application Winform.
Le but étant de gérer des accès de lecture/écriture dans un datagrid "bindé" avec une base SQL Server.
Merci :)
Dans un premier lui, il est très important d'enregistrer le ou les mots de passe, soit crypté soit sous la forme d'un MD5 et ceci peut importe le mode d'enregistrement du mot de passe (fichier XML, BD etc)
-> Ne jamais enregistrer un mot de passe en clair !
Ensuite au niveau application, ce que tu peux faire, c'est :
- Soit lancer une fenêtre de login et si le login est correct, lancer fenêtre de gestion proprement dites.
- Soit lancer lancer ta fenêtre principal en hidden, lancer ta fenêtre de login dans le load de ta fe,être principale et dans le cas d'un login correct, afficher ta fenêtre. Ce petit système te permet plus facilement de gérer le changement de login pendant ton application (appel d'une méthode d'authentification). (En tout cas je trouves !)
Ok donc on pourrait imaginer, une table users dans ma bdd SQL Server qui contient 4 colonnes : 'login', 'password', 'role' et 'validation date' par exemple.
Le mot de passe est crypté en base.
A la connexion de l'utilisateur, je récupère son rôle et j'affecte par exemple un attribut lecture seule sur le datagrid si celui-ci est restreint.
C'est une bonne façon de faire ? merci pour vos retours :)
Personnellement je mettrais le datagridview en lecture seule par défaut et je l'activerais si besoin.
Tu peux éventuellement enregistrer le rôle de ton utilisateur via une autre table SQL si plus tard tu auras besoin d'une gestion plus avancée des droits utilisateurs.
En effet, mais j'ai un aussi un programme qui tourne sur PDA et l'authentification Windows ne convient pas dans ce cas.
Pour un environnement pur Windows, j'aurais dit que tu pouvais te baser sur l'authentification Windows et l'utilisateur en cours.
Pour un environnement mix avec SqlServer, tu peux utiliser la gestion des utilisateurs sous le serveur SQL (tu peux ainsi protéger tes données aussi à la source ce qui permet d'éviter de limiter les problèmes de sécurité provenant de bug).
Sinon il y a la bonne veille méthode de la couche supplémentaire maison, plus élastique au niveau fonctionnel, mais pas pour la sécurité.
En effet pourquoi faire compliquer quand on peut faire simple et efficace :)
Je vais exploiter l'authentification SQL Server, intégrée pour l'application Winform et à partir des comptes créés pour la partie PDA.
Il me suffira juste d'intercepter les erreurs SQL Server dans mes applications pour gérer les messages à l'utilisateur.
Merci bien pour votre contribution :)