begin process at 2012 02 13 11:30:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Sécurité

 > 

Prog avec droits d'utilisateurs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Prog avec droits d'utilisateurs

jeudi 14 juillet 2005 à 09:57:47 | Prog avec droits d'utilisateurs

penchu

Bonjour à tous,

je suis en train d'imaginer une nouvelle application de gestion qui sera utilisée par différentes personnes avec des droits différents pour cette application.

En gros, ce que je compte faire, c'est une table dans une base de données qui reprend le nom du pc du gars qui va travailler avec cette applic, ainsi que les droits sur ce programme. (par exemple, pc-toto a tous les droits, pc-titi n'a droit qu'à visualiser les données dans le programme, donc pas de boutons supprimer, nouveau ou autre disponible pour lui.)

Mais dans le programme, comment puis-je faire ça? Personne n'a une source sur laquelle je peux m'inspirer, ou un tuto ou une bonne explication?

Merci d'avance

jeudi 14 juillet 2005 à 10:17:03 | Re : Prog avec droits d'utilisateurs

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Tout dépend du genre de limitation que tu veux faire : il êux s'agit de ne pas afficher certains menus, de ne pas afficher certaines feuilles, de ne pas afficher certains contrôles, de ne pas permettre la modifications de certains champs, etc. Il faut faire au cas par cas.

Dans ce que tu propose, je pense que désactiver certains contrôles pourrait faire l'affaire.

Ce genre de domaine est vaste, et très fastidieux à développer pour garder une interface uniforme pour tous sans que chacun se rende compte de ces accès limités.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
jeudi 14 juillet 2005 à 10:20:52 | Re : Prog avec droits d'utilisateurs

penchu

ben en fait, l'appli que je dois réaliser ne comprendra au maximum que 5-6 boutons et 2-3 sous menus à gérer au niveau des droits d'accès. Ce n'est pas énorme.

Donc en fait, ce que je voudrais c'est lancer l'appli avec les boutons enabled ou disabled en fonction du nom de l'utilisateur qui se connecte. (Ca doit pas être super sécurisé, ça reste dans l'intranet et les gens qui l'utiliseront ne sont vraiment pas experts en informatique)

jeudi 14 juillet 2005 à 10:38:01 | Re : Prog avec droits d'utilisateurs

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
A ce moment là, je te conseille de faire la chose suivante :

* Stocke dans une table tes droits utilisateurs (un champ Nom utilisateur, et un champ Droits)
* Dans le champ nom, tu stocke le nom que choisiront les utilisateurs au démarrage de ton prog (ou un nom qui est stocké dans la base de registre ou autre, bref, un paramètre définit à l'avance pour savoir qui utilise le prog), et dans le champ droits, utilise un champ numerique pour stocker, sous forme de flag, les boutons qui sont enabled ou pas.
* Au démarrage du prog, tu lis les droits de l'utilisateur courant, et tu active/désactive les boutons/menus selon les droits que tu as donné.

Le champ numérique des droits doit ressembler à un truc comme cà :
* 0 : tout les boutons/menus sont désactivés
* 1 : seul le premier bouton est actif
* 2 : seul le deuxième bouton est actif
* 3 : seuls le premier et le deuxième bouton est actif
* 4 : seul le troisième bouton est actif
* 5 : seuls le premier et le troisième bouton sont actifs
* 6 : seuls le deuxième et le troisième bouton sont actifs
* 7 : seuls les trois premiers boutons sont actifs
* etc.

En gros, pour tester si un bouton est actif :
if (index du bouton)^2 And Droits Then 'il est actif

Cette méthode te permet de rajouter facilement des boutons par la suite sans devoir toucher à la structure de ta base de données. C'est la méthode utilisée par les fonctions de l'API entre autre pour les options d'une fonction, et c'est très efficace !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
jeudi 14 juillet 2005 à 11:11:35 | Re : Prog avec droits d'utilisateurs

penchu

* Au démarrage du prog, tu lis les droits de l'utilisateur courant, et tu active/désactive les boutons/menus selon les droits que tu as donné.

Le champ numérique des droits doit ressembler à un truc comme cà :
* 0 : tout les boutons/menus sont désactivés
* 1 : seul le premier bouton est actif
* 2 : seul le deuxième bouton est actif
* 3 : seuls le premier et le deuxième bouton est actif
* 4 : seul le troisième bouton est actif
* 5 : seuls le premier et le troisième bouton sont actifs
* 6 : seuls le deuxième et le troisième bouton sont actifs
* 7 : seuls les trois premiers boutons sont actifs
* etc.

En gros, pour tester si un bouton est actif :
if (index du bouton)^2 And Droits Then 'il est actif

Et tu fais comment en code ça? Parce qu'en fait, qqn m'a déjà donné le même principe que ce que tu me donnes là, mais je n'y parviens pas du tout (ni lire les droits de l'utilisateur courant, ni affecter ses droits dans le prog)

jeudi 14 juillet 2005 à 12:34:44 | Re : Prog avec droits d'utilisateurs

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
ben déjà, est-ce que tu as déjà utiliser une base de données ?

Car si ce n'est pas le cas, lit des tutoriaux sur les bases de données pour comprendre comment ca marche avant d'essayer de faire ce genre de chose, sans cà, je ne pourrais pas tout t'expliquer.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
jeudi 14 juillet 2005 à 12:53:16 | Re : Prog avec droits d'utilisateurs

penchu

si si les bases de données, j'en ai déjà fait, mais j'avoue que j'ai un peu de mal.
Tu peux expliquer, je comprendrais bien.

jeudi 14 juillet 2005 à 13:15:44 | Re : Prog avec droits d'utilisateurs

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Donc, tu ouvre un recordset sur la table contenant les utilisateurs avec leurs droits.

Pour l'enregistrement :
Dim lDroit As Long
If PremierBouton.Visible then Let lDroit = lDroit Or 1
If DeuxièmeBouton.Visible then Let lDroit = lDroit Or 2
If TroisièmeBouton.Visible then Let lDroit = lDroit Or 4
If QuatrièmeBouton.Visible then Let lDroit = lDroit Or 8
If CinquièmeBouton.Visible then Let lDroit = lDroit Or 16
If SixièmeBouton.Visible then Let lDroit = lDroit Or 32
If PremierMenu.Visible then Let lDroit = lDroit Or 64
If PremierMenu.Visible then Let lDroit = lDroit Or 128
If PremierMenu.Visible then Let lDroit = lDroit Or 256

La variable lDroit stocke donc le nombre à enregistrer dans le champ Droit de l'utilisateur, et ca te permettra de savoir quel bouton/menu sera visible pour tel ou tel utilisateur. (bien entendu, c'est à toi de définir lesquels seront visibles ou pas avant de lancer l'enregistrement).

Et pour le chargement :
If lDroit And 1 Then PremierBouton.Visible = true
If lDroit And 2 Then PremierBouton.Visible = true
'etc.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
jeudi 14 juillet 2005 à 13:30:13 | Re : Prog avec droits d'utilisateurs

penchu

Mais voila, on en revient au même problème que j'ai eu avec celui qui m'a expliqué cette méthode aussi.

Je comprends pas du tout ces histoires de and et de or.
Et puis, ADODB, j'y touche plus du tout depuis un an au moins, je suis toujours avec ADO.Net maintenant.

Bon en fait, comme je me sers du nom de l'utilisateur du pc pour se connecter au programme (et avoir ainsi les droits appropriés), j'ai juste à faire une requete  : "SELECT * FROM users WHERE nom_pc = '" & Environment.Username & "';"  ??

Et une fois que j'ai exécuté ma requête, je fais quoi....

Ya vraiment pas moyen de mettre le code complet histoire de vraiment bien comprendre comment ça marche???
Mais vraiment complet complet depuis la connexion à la db jusqu'à la fin? Ce serait vraiment utile je pense, parce que tu n'es pas le 1er à m'expliquer ce truc et que je pige pas (et que j'aimerais vraiment piger)

Pour info, voici la strucutre de mes tables, peux-tu me dire également si c'est comme ça qu'il faut faire???

jeudi 14 juillet 2005 à 14:28:57 | Re : Prog avec droits d'utilisateurs

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Ben le code que je t'ai passé est quasiment complet :

Tu fait ta requête avec "SELECT * FROM users WHERE nom_pc = '" & Environment.Username & "';" que tu stocke dans oRecordset par exemple.

Ensuite :

Dim lDroit As Long
If PremierBouton.Visible then Let lDroit = lDroit Or 1
If DeuxièmeBouton.Visible then Let lDroit = lDroit Or 2
If TroisièmeBouton.Visible then Let lDroit = lDroit Or 4
If QuatrièmeBouton.Visible then Let lDroit = lDroit Or 8
If CinquièmeBouton.Visible then Let lDroit = lDroit Or 16
If SixièmeBouton.Visible then Let lDroit = lDroit Or 32
If PremierMenu.Visible then Let lDroit = lDroit Or 64
If PremierMenu.Visible then Let lDroit = lDroit Or 128
If PremierMenu.Visible then Let lDroit = lDroit Or 256

Tu enregistre ca dans ta table :

let oRecordset.Fields("Rights").Value = lDroit

Ca te permet donc d'avoir les droit pour 1 utilisateur, modifie les propriétés Visible de tes boutons/menus, et enregistre de nouveau pour un autre utilisateurs, etc.

Après à l'ouverture :
If oRecordset.fields("Rights").value And 1 Then PremierBouton.Visible = true
If oRecordset.fields("Rights").value And 2 Then PremierBouton.Visible = true
'etc.

La je peux pas faire plus explicite que cà !


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/

1 2

Cette discussion est classée dans : programme, pc, prog, utilisateurs, droits


Répondre à ce message

Sujets en rapport avec ce message

probleme de droit [ par xavier77 ] Bonjour à tous, J'ai crée un group de projet contenant un exe et 2 dll . Tout marche parfaitement. Mon exe et mes dll sont sur un serveur et les utili multiple utilisateurs [ par arthur1952 ] bonjourvoila mon probleme, j'ai développé un programme sous exel qui est utilisé par plusieurs personne sur le meme ordinateur.a l'ouverture du progra pb de lancement de prog sous windows 98 [ par arpege ] j'ai réalisé un programme en VB6 se connectant à une base de donnée type access.Le programme a été réalisé ,compilé et "empacketé"sous windows XP.Lors compatibilité pc<->mac [ par i0raeK ] Salut tout le monde !!!voila j'ai fais une programme VBA sur mon pc avec excel 2000 pensant que la compatiblite pc mac sous excel était assuré sachant programme marche plus une fois sur pocket pc [ par domsig ] bonjour à tous(toutes) j'ai commencé à écrire un programme en VB pour mon pocket pc avec visual studio.net 2003 ; ce programme entre autres affiche un EXECUTION de mon prog sur autre machine [ par sam469 ] bonjour a tous jais un probleme,je n'arive pas a faire fonctionner mon logiciel sur un autre pc,il me di VB6FR.DLL manquand ou inexistant,je ne sais p Lancer un programme sans l'installer sur le Pc. [ par gagueur ] Bonjour , est ce que avec Visual Basic c'est possible de faire une application qui n'a pas besoin d'étre installer sur le Pc , c'est a dire que le pro Executer un programme et/ou des commandes en tant qu'administrateur du domaine ....VB6 [ par vbsurfer ] SalutJe voudrais savoir si on peut créer un programme en vb6qui a les droits administrateur du domaine sans être nous meme admin du domaineJ'explique Lancer un prog derriere un autre [ par jeremia ] Bonjour,Je cherche le moyen de lancer des programmes les uns derrieres les autres (mais pas de manières simultanées).C'est-à-dire que je veux par exem programme s'installe tout seule dans un autre pc [ par sitemo ] je veux cree un programme que lorsque tu clike sur bouton le programme se lance automatiquement ? quelquun a une solution merci d'avance MK


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales