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
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.
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
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
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
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?
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
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
Ok Danke für eure Antworten
Lg Bernie