Seite 1 von 1

ApplicationHandler_WinLogin: Übergabe des Usernames an Jet

BeitragVerfasst: Mo 26. Apr 2010, 09:41
von Sten Schmidt
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".

BeitragVerfasst: Mo 26. Apr 2010, 10:23
von Josef Pötzl
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

Re:

BeitragVerfasst: Mo 26. Apr 2010, 10:42
von Sten Schmidt
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...

BeitragVerfasst: Mo 26. Apr 2010, 11:36
von Josef Pötzl
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