Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Bernie110 am Juli 05, 2011, 12:48:45

Titel: Frontend Userverwaltung
Beitrag von: Bernie110 am Juli 05, 2011, 12:48:45
Hallo Zusammen,

ich teile meine DB gerade auch auf FE & BE auf.

Nun ist es so.. zuvor hatte ich das FE auch auf dem Server.. der knickt aber gerade etwas in die Knie...
Nun werde ich die FEs auf die Computer legen...

Leider hab ich jetzt das Problem, dass auf verschiedenen Formularebenden.. ein aktueller User- name benötigt wird

Kann man abhängig nach Computer den aktuellen User vorgeben?  ( also ich meine ohne Anmeldematrix ect. )
So, dass wenn der User der am Rechner A sitzt.. einfach CurrentUser = "Müller" .. und zwar solange die Sitztung dauert, heisst ?

Irgendwie so was  ;D Keine Ahnung  ???

hat jemand nen Tipp ?

gruss Bernie
Titel: Re: Frontend Userverwaltung
Beitrag von: database am Juli 05, 2011, 13:02:15
Hallo,

du kannst zur Laufzeit deines Frontends den am Rechner angemeldeten Benutzer ohne große Probleme ermitteln.

Diesen Namen KÖNNTEST du mit einer gespeicherten Liste (kann theoretisch auch eine Tabelle am BE sein)
vergleichen und bei Übereinstimmung den Zugriff auf das Frontend gewähren.

Wenn in dieser Tabelle zu einem realen Benutzernamen auch ein Alias gespeichert wird, kann dieses natürlich für die Zugriffsregelung verwendet werden.


Titel: Re: Frontend Userverwaltung
Beitrag von: Bernie110 am Juli 05, 2011, 13:48:15
Hi Data,

ja aber genau das geht nicht, weil die Meisten sich am Rechner mit dem gleichen User-Namen anmelden.

Kann man es Access sagen ?

Gruss
& Danke
bernie
Titel: Re: Frontend Userverwaltung
Beitrag von: bahasu am Juli 05, 2011, 15:10:26
Hi Bernie,

ich denke Dir ist geholfen, wenn Du den Namen vom Rechner bzw. vom am Rechner angemeldeten User hast.

Public Function CompName(UserOrComp As Integer) As String

    On Error Resume Next

    Dim NBuffer As String
    Dim BufferSize As Long
    Dim Wok As Long
   
    BufferSize = 256
    NBuffer = Space$(BufferSize)
   
   
    If UserOrComp = 1 Then
        Wok = api_GetUserName(NBuffer, BufferSize)
        CompName = Trim$(NBuffer)
   
    Else
        Wok = api_GetComputerName(NBuffer, BufferSize)
        CompName = Trim$(NBuffer)
    End If
   
    If Right(CompName, 1) = Chr(0) Then
        CompName = Left(CompName, Len(CompName) - 1)
    End If
   
End Function


Mit CompName (0) bekommst Du den Rechnernamen,
mit ... (1) den Namen des angemeldeten Benutzers.

Harald
Titel: Re: Frontend Userverwaltung
Beitrag von: DF6GL am Juli 05, 2011, 15:43:57
Hallo,

mhmm, iich glaube nicht, dass nach der Windows-Anmeldung mit einem bestimmten Usernamen man diesen Usernamen einfach so mal in einen (bestimmten) anderen ändern kann.


Es kommt darauf an, wie in Access der akt. Username ermittelt wird.
Wenn er über die besagte API-Funktion ausgelesen wird, sehe ich keine Chance.
Wenn er über die Umgebungsvariable (Environ ("Username") ) geholt wird, könnte man für die Access-Sitzung die Umgebungsvariable auf einen bestimmten Usernamen setzen...



Private Declare Function SetEnvironmentVariable Lib _
       "kernel32.dll" Alias "SetEnvironmentVariableA" (ByVal _
       lpName As String, ByVal lpValue As String) As Long
       
Private Declare Function GetEnvironmentVariable Lib _
       "kernel32.dll" Alias "GetEnvironmentVariableA" (ByVal _
       lpName As String, ByVal lpBuffer As String, ByVal _
       nSize As Long) As Long


Private Sub Befehl1_Click()
On Error GoTo Err_Befehl1_Click
   Dim Buffer As String
   Dim l As Long
   
   Call SetEnvironmentVariable("Username", "Franz")

   
   l = 256
   Buffer = String$(l, Chr$(0))
   
   l = GetEnvironmentVariable("Username", Buffer, l)
   
   If l <> 0 Then
       Buffer = left(Buffer, l)
       MsgBox "MeinName =" & Buffer
   End If


Exit_Befehl1_Click:
   Exit Sub

Err_Befehl1_Click:
   MsgBox Err.Description
   Resume Exit_Befehl1_Click
   
End Sub
Titel: Re: Frontend Userverwaltung
Beitrag von: database am Juli 05, 2011, 16:08:24
Hallo,

wobei ich mir bei dieser Kostellation ...

Zitatweil die Meisten sich am Rechner mit dem gleichen User-Namen anmelden

sowieso kein ganz ernst zu nehmendes Sicherheitskonzept vorstellen kann.
Wenn sich die meisten als 'Hugo' anmelden dann kannst du ja sowieso alle berechtigen, egal wer sie real dann wirklich sind.   ???

Entweder habe ich da was falsch verstanden oder ...     Wenn der Benutzer als (real) 'max.mustermann' keinen Zugriff bekommt aber als 'hugo.irgendwer' schon,
wird es so sein, dass sich jeder, der Zugriff möchte sich als 'hugo.irgendwer' anmeldet.

Wozu sperrst du dann den Zugriff auf Formulare?
Titel: Re: Frontend Userverwaltung
Beitrag von: Bernie110 am Juli 05, 2011, 16:39:08
Hallo Zusammen,

also um es nochmals etwas zuverdeutlichen.
Viele User melden sich mit dem gleichem Namen an den ´Rechnern an.. Beispiel Mustermann.
In unserem Warenwirtschaftsystem hat dann jeder User ein eigenes PW & Usernamen.

In meiner Access DB war dem auch so.. das FE lag auf dem Server und war in einem gesichertem Zustand.

Lege ich nun das FE auf die Rechner.. dann ist der currentuser in allen Fällen immer der Admin..

Naja ich benötige halt schon einen richtigen Namen ;-)

Gruss
bernie
Titel: Re: Frontend Userverwaltung
Beitrag von: DF6GL am Juli 05, 2011, 17:36:19
Hallo,


" dann ist der currentuser in allen Fällen immer der Admin."


das tönt nach aktiviertem Access-Sicherheitssystem und hat mit Windows-Login nichts zu tun.


Such die zur DB-Anwendung gehörende *.mdw-Datei und starte Access(!) mit Übergabe der MDB- und Arbeitsgruppendatei auf Kommandoebene.

Wenn es sich um den "Currentuser" handelt, dann könnte man auch diese Funktion überladen und einen anderen Usernamen "erzwingen":

Public Sub Currentuser() as String
Currentuser="Mustermännle"
End Sub

Titel: Re: Frontend Userverwaltung
Beitrag von: Bernie110 am Juli 06, 2011, 12:18:43
Ok Danke für eure Antworten
Lg Bernie