Avatar billede Kent Hansen Novice
19. december 2019 - 21:13 Der er 8 kommentarer

Login oplysniger registreres

Jeg er ved at oprette en Access database hvor der skal kunne logges på af flere brugere.
I den forbindelse har jeg brug for at Login oplysninger fra Windows registreres ved oprettelse af nye poster - og evt. ved ændringer
Er der nogle der ved hvor jeg søger oplysninger om dette?
Avatar billede martens Guru
19. december 2019 - 22:26 #1
Du kan nemt lave en logfil/tabel ved at smide nedenstående ind i et modul og kalde det i en opdateringsforespørgsel, når der oprettes/ændres/slettes poster

Public Function getUserName() As String
getUserName = Environ("USERNAME")
End Function


Så kalder du blot getUsername()  ...

Mere skal der ikke til..

god arbejdslyst..

mvh martens
Avatar billede bvirk Guru
19. december 2019 - 23:52 #2
Environ er for let at snyde med - det er jo netop på et NT domæne hvor alle der har en konto kan logge ind på en vilkårlig computer, at det giver mening at logge username.
Man snyder sådan til at identificere sig som bruger 'bob', uanset hvem er logget ind som.
Åbner et cmd vindue og skiver:

--------------cmd vindue
set USERNAME=bob
access acess-dokument
-------------

Hvor access er det fulde stinavn til access.exe som kan hentes fra genvejen man kan åbne access med og access-dokument skal være med fuldt stinavn hvis ikke den ligger i current directory.

Derfor vil jeg bidrage med denne løsning.

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
   
Function userName() As String
    Dim lngLen As Long, lngX As Long
    userName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(userName, lngLen)
    If lngX <> 0 Then
        userName = Left$(userName, lngLen - 1)
    Else
        userName = ""
    End If
End Function
Avatar billede martens Guru
20. december 2019 - 00:10 #3
@bvirk - Jeg benytter faktisk den kode som du refererer til i en database på jobbet... ;o) 

http://www.databasedev.co.uk/get_username_or_computername.html

- men mit bud var den "nemme" løsning på problemet...
og Kent Hansen skriver ikke noget om domæne, hvilket jeg faktisk først ser nu....

Det virker faktisk som om han vil lave log-in på selve databasen ;o)
Avatar billede bvirk Guru
20. december 2019 - 10:12 #4
@martens - så fik vi begge løsninger med og et interessant link - tak for det.

Næste gang, hvis jeg er første svarer,  må jeg gøre det lidt delvist så andre kan komplettere!

Får lyst til uddybe 'alle der ... kan logge ind' dækker 2 senarier

1. På én computer på et NT domæne  er der access database.
2. En access frontend ligger på flere maskiner eller kan kopieres dertil.
 
God jul.
Avatar billede bvirk Guru
20. december 2019 - 10:25 #5
Glemte helt - burde man ikke som frontend udvikler have noget standard der  afstedkom følgende 'vis mig ikke igen' fravalgbar  popup:

klokken dit:du:dat forsøgte bruger x at dentificere sig som bruger y

udløst af  dit:dut:dat hændelsen environ("USERNAME")<>userName()
Avatar billede terry Ekspert
20. december 2019 - 10:50 #6
https://www.youtube.com/watch?v=pJL1CCfvf7s

And if you choose to use another method for getting username you just alter GetUserName...

Just a short not: If the dB isnt secure, then no matter what method is used to get the user name it can be altered by anyone ...
Avatar billede terry Ekspert
20. december 2019 - 10:50 #7
note
Avatar billede bvirk Guru
20. december 2019 - 15:02 #8
Ja, det kan jeg godt se Terry, at acces ikke har nogen skudsikker beskyttelse.

Når brugernavn hentning via windows API kald kontra environment optræder mange steder på nettet som f.eks mvps.org/access/, må det være for at 'hæve baren' - sammenholdt med:
1. vba ikke kan læses/ændres: .mde eller .accde
2. Backend er hemmligholdt vha. policy omkring ejerskab - fillistning umuliggjort - gæt et navn der ligger i mappe hvis navn er en ikke listbar guid.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester