Identification dans Access

Fermé
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 - 6 juin 2002 à 11:12
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 - 13 mai 2009 à 15:46
J'aimerai savoir si c'est possible de chopper le user qui s'est logué dans windows 2000 (par ex) dans access afin de faire des droits personalisé pour les différents formulaires

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)

7 réponses

Dim util As Strind
util= Environ("USERNAME")

20fois plus simple non ??
3
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
13 mai 2009 à 15:46
Voui, mais il a fallu attendre 7 ans pour avoir une solution 20x plus simple...
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
7 juin 2002 à 11:56
Voui, t'as raison, avec les APIs :

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, NSize As Long) As Long

' Attention si Buff trop petit => Plantage
Dim Buff As String * 255
Dim NSize As Long
Dim Ret As Long
Dim UsrName As String

NSize = Len(Buff)
Ret = GetUserName(Buff, NSize)
UsrName = Left(Buff, NSize)
UsrName = Left(UsrName, Len(UsrName) - 1)
MsgBox UsrName

Et voilà !

Fais gaffe si tu veux faire une authentification avec ça, car si une personne se loggue sur un poste avec le nom d'un user sans se faire authentifier par un serveur de nom de domaine (*.pwl) et ben elle peut se faire passer pour qui elle n'est pas...

Tu peux aussi avoir le nom du PC avec :

Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, NSize As Long) As Long

A+
Blux

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
2
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
7 juin 2002 à 16:07
Merci beaucoup tu me rends un énorme service¨!!!!!
Je vais essayer de le mettre en place et je te tien au courant


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
11 juin 2002 à 11:38
Dit moi je peux le mettre dans un module directement le code? ou dois je le mettre dans le formulaire?

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
11 juin 2002 à 12:30
Comme tu veux !

Moi, je fais les déclarations dans un module en public, comme ça les variables sont accessibles dans tous les objets.
Et j'appelle la fonction à l'ouverture du premier formulaire (SurOuverture).

Pour des infos sur les APIs, tu fais une recherche google de WIN32.HLP, c'est le fichier qui décrit toutes les APIs 32 bits.

Je ne crois pas qu'il soit chez Kro$oft, mais il doit être chez Borland (livré avec DELPHI). Attention, il fait 7 Mo, le bougre !

A+
Blux

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35 > blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024
11 juin 2002 à 14:49
J'ai mit le bou de code dans un module et quand j'appelle le module il me dit "invalid outside procedure" sur Buff est ce que j'ai fait qqch de faux? ou faut il programmer qqch a coté?

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
Je ne pense pas qu'il soit possible de récupérer le login de windows. Par contre, ce que tu peux faire c'est créer une form de démarrage dans ton appli Access qui demande un login et un mot de passe. Tu créé une table qui contient les logins, mdp et profils à appliquer puis c'est parti ! Tu utilise ensuite ce login pour faire ce que veux.
Voilà !

Phil.
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
6 juin 2002 à 14:11
c'est ce que je pensais aussi, mais j'avais entendu dire par un réseau "master" que c'était possible enfin bref.. je verrai merci


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
6 juin 2002 à 17:51
si c'est possible, sais plus comment mais c'est possible, soit recours API ou plus simple, j'ai oublié, sûrement API mais je suis certain d'avoir déjà vu ça...

vas toujours voir sur http://www.mvps.org/accessfr/ des fois que ce soit là que je l'ai vu... j'ai oublié où c'est mais ça doit se trouver....

kinder.surprise,
le maton du matou
0
Utilisateur anonyme
11 juin 2002 à 14:04
très belle intervention de blux trouvé-je modestement!

faudra pas perdre l'uérelle de ce post...

kinder.surprise,
le maton du matou
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
11 juin 2002 à 15:29
On récapitule :

tu crées un module que tu appelles API (Par exemple)

tu recopies ça dedans :

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal
lpBuffer As String, NSize As Long) As Long

Ensuite, dans ton formulaire (car j'espère que tu bosses avec des formulaires). Tu crées un bouton.
Sur ce bouton tu attaches le code suivant dans la propriété 'SurCLic' :

' Attention si Buff trop petit => Plantage
Dim Buff As String * 255
Dim NSize As Long
Dim Ret As Long
Dim UsrName As String

NSize = Len(Buff)
Ret = GetUserName(Buff, NSize)
UsrName = Left(Buff, NSize)
UsrName = Left(UsrName, Len(UsrName) - 1)
MsgBox UsrName

Et comme ça, quand tu ouvres ton formulaire, et que tu appuies sur le bouton,
tu vois affiché le score de France-Danemark.

Meeeeuuuuuu nooooooooooon , j'déconne...

T'as d'la chance que je puisse te répondre au boulot, sinon, t'étais bon pour une nuit d'attente !!!

A+
Blux

PS : Kinder, arrête, tu me fais fondre... ;-))))))) (86°, pour gsx)
Le forum il est là pour ça, non ?
et pas que pour les délires...
Donc y faut qu'on mette une page avec les adresses des meilleures contribs.
Jeeeeffffffffff... ?!

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
11 juin 2002 à 15:40
Ouai!!! j'aurai attendu toute la nuit..
enfin merci. je vais faire ce que tu m'as dit merci grand maitre!!!


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
11 juin 2002 à 15:44
Merci!!!!!!!!!!!! je viens de voir 2-0 pour le Danemark..... dès que j'ai appuyé sur le bouton!!
Ca marche c'est cool merci pour tes lumières..
juste si tu peux répondre. .mais c'est pas pressant ca marche avec windows 98 ce truc? car j'ai vu sur un site web un bou de code comme le tien (mais qui marche pas.. héhé) et qui marche que pour nt xp et 2000


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
11 juin 2002 à 15:58
Alors, je te confirme :

ça tourne régulièrement là où je travaille :

en Win95, Win98, Win98 SE, Win NT...

pas testé sur ME, 2000 ni XP (ni VAX), mais vu que tu confirmes...

Ce sont les APIs Win32, donc depuis Win95 (et même 3.11 avec win32s), ça tourne.

TOUS les programmes y font régulièrement appel (y compris windows lui-même !)

A+
Blux

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
0