ApplicationHandler_WinLogin: Übergabe des Usernames an Jet

Fragen, Wünsche und Anregungen zur Code-Bibliothek

ApplicationHandler_WinLogin: Übergabe des Usernames an Jet

Beitragvon Sten Schmidt » Mo 26. Apr 2010, 09:41

Hallo Zusammen,

ich habe in ein FE den ApplicationHandler_WinLogin eingebaut. Nun sind im FE einige Tabellen auf ein BE verknüpft.

Frage: Ist es möglich (ohne auf eine mdw-Datei zurückgreifen zu müssen), den frmLogin eingegebenen Usernamen so "weiterzureichen", dass dieser auch im BE sichtbar wird? Standardmäßig erscheint im BE ja der User "Admin".
Sten Schmidt
Entwickler
 
Beiträge: 146
Registriert: Do 18. Mär 2010, 22:24
Accessversion: 2016
Access-Erfahrung: Experte

Beitragvon Josef Pötzl » Mo 26. Apr 2010, 10:23

Hallo!

Wie meinst du das mit "im BE sichtbar werden"?

Anm.: ich ergänzte in der Klasse ApplicationHandler_AppLogin_Win.cls die Rückgabe des Benutzernamens.

Den Benutzernamen könntest du folgendermaßen abrufen:
Code: Alles auswählen
CurrentApplication.Extensions("AppLogin").CurrentUser


Wenn du den Namen in Tabellen speichern willst, musst du das allerdings vom FE aus ansteuern.
Eine Möglichkeit wäre den Benuternamen in den Eingabeformualren als Standardwert einzustellen.

=> In so einem fall ist vielleicht eine HIlfsprozedur in einem allgemeinen Modul praktisch:
Prinzip:
Code: Alles auswählen
Public Function CurrentAppUser() As String

   CurrentAppUser = CurrentApplication.Extensions("AppLogin").CurrentUser

End Function


mfg
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re:

Beitragvon Sten Schmidt » Mo 26. Apr 2010, 10:42

Josef Pötzl hat geschrieben:Hallo!

Wie meinst du das mit "im BE sichtbar werden"?



Ich meine die User die das BE als eingeloggt meldet, Stichwort "UserRoster": http://support.microsoft.com/?id=198755

Eigentlich müsste ja "nur" der ermittelte CurrentUser "weitergereicht" werden...
Sten Schmidt
Entwickler
 
Beiträge: 146
Registriert: Do 18. Mär 2010, 22:24
Accessversion: 2016
Access-Erfahrung: Experte

Beitragvon Josef Pötzl » Mo 26. Apr 2010, 11:36

Da könnte man höchstens ein wenig tricksen, indem man den Usernamen in der Arbeitsgruppendatei anlegt (falls er noch nicht vorhanden ist) und dann eine Verbindung mit diesem Loginnamen öffnet.

Prinzip:
Code: Alles auswählen
dim cnn as adodb.connection , conncectionString as string
set cnn = currentproject.Connection

'User erstellen:
cnn.execute "create user " & loginname

'Nun eine neue Verbindung öffnen und diese offen halten:
set cnn = new adodb.connection
conncectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=...;System database=" & CurrentProject.Connection.Properties("Jet OLEDB:System database")
cnn.Open conncectionString, loginname
set HilfsvariableZumOffenHaltenDerConnection = cnn



Zum Testen kannst du die (nun neue) Klasse base/jet/ApplicationHandler_JetUserHook.cls in deine Anwendung importieren und sie in der Konfiguration-Datei aktivieren.

Aktivierung in _config_Application.InitConfig:
Code: Alles auswählen
Dim objJetUserHook As ApplicationHandler_JetUserHook
Set objJetUserHook = New ApplicationHandler_JetUserHook
AddApplicationHandlerExtension objJetUserHook
objJetUserHook.IdentifyBackendTableDefName = "Name einer verknüpften Tabelle"
Set objJetUserHook = Nothing
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016


Zurück zu Fragen und Wünsche

cron