Domino 9 und frühere Versionen > ND6: Entwicklung
NotesRegistration.SwitchToID und ECL-Alerts - schon fast offtoppic
pete_bla:
Hi,
Hier habe ich noch den zweiten Teil meines Migrationsprojekts, der mich an einer "Kleinigkeit" zur Verzweiflung bringt.
Wir haben einen Haufen Mail-DBs in denen persönlich verschlüsselte Mails entschlüsselt werden müssen. (Zum glück haben wird auch die UserIds und Passwörter und die entschlüsselungsfunktion ist auch wunderbar funktional!)
Das ganze läuft über eine Client-"Aktion" (Notes 6.54) ab und funktioniert auch soweit!
Hier ein relevanter Code-Auschnitt:
--- Code: ---[...]
Set Doc = Coll.GetFirstDocument
while not doc is nothing
' id-datei und passwort aus den anderen dbs holen
' wechselt auch zum "Admin-User" der auch in die ID-DB darf (die hab ich auch schon lokal und "offen" kopiert - aber bitte nicht verraten!)
Call GetUserIDAndPWD(Doc.Shortname(0), IDFileName, PWD )
' neue session um sie zu "trennen" - aber nicht relevant....
Set S_user = New NotesSession
Set reg = New NotesRegistration
reg.RegistrationServer = Doc.MailServer(0)
Call reg.SwitchToID( IDFileName , PWD )
'[...]
Set DBMail = S_user.GetDatabase(Doc.MailServer(0), Doc.MailFile(0))
'[...]hier dann der decrypt mit u.a.
item.encrypted = false
' und
docMail.save()
'[...]
'nächstes doc:
Set Doc = Coll.GetNextDocument(Doc)
Wend
' fertig
--- Ende Code ---
Enziges Manko an der ganzen Sache ist noch:
da die hunderte User eben nicht auf dem Client angemeldet waren, haben sie keine ECL-Konfig und erhalten die "Notes-Standard" ECL. (defautl, unsigned ... Lotus Notes Template Development...)
-> Somit kommt (interessanterweise sporadisch, bei unterschiedlichen "Personen") immerwieder eine ECL-Meldung, ob man das will, (-> 2x nach unten + ok)
Wie bekomme ich die ECL-Meldung für den Client zumindest vorübergehend los?
(ja ich habe volle ECL-änderungsrechte auf meinem Client - ich bin "root" ich darf das....)
- notes.ini:
ECLSetup=0 / =1 / =2
nützt nichts (wirkt wohl nur bei der Anmeldung)
- @RefreshECL(server, "names.nsf","")
als evaluate({@RefreshECL(} & doc.MailServer(0) & {:"names.nsf";"")})
als auch in agent.run() geht nicht.
selbst Workspace.Dialogbox("(RefreshECL-ButtonForm)"...)
mit einem Button: @RefreshECL(...) hat nicht den gewünschten Effekt (wäre immer nur 1xKlick)
(ehrlich gesagt hab ich auch noch nicht rausgefunden, bei welchem User die dann landet)
Muss ich letztendlich alle User zuerst auf meinem Client "anmelden" (damit die ECL vom Server kommen kann) oder
doch ca. 800x "durchtickern" (zum Glück sinds keine tausende)?
Weiss jemand noch eine Möglichkeit ?
Grüsse, und ich bin dankbar für jeden Hinweis, :)
Pete(r)
[size=8pt]nachtrag - hab den Titel geändert[/size]
ata:
... die Datenbanken entsprechend signieren sollte auch helfen...
Toni
pete_bla:
Hi Toni,
leider nein -
ausser ich habe die echte "Lotus Notes Template Development/Lotus Notes" ID - aber die habe ich leider nicht - .... :-X)
In diesem Fall, ohne ECL erhalte ich immer die "Default" wie wenn ein Client neu aufgesetzt (und nie mit einem Server verbunde) wurde.
Danke, Pete(r)
ata:
... ist schon ne Weile her - will mal sehen...
Toni
Glombi:
Eine Idee: Du machst eine Org.-Richtline für die ECL und definierst, dass die immer aktualisiert werden soll. In die Admin ECL trägst Du den User ein, der das Script signiert/ausführt.
Dann könnte es sein, dass bei
Call reg.SwitchToID( IDFileName , PWD )
zuerst die ECL neu gezogen wird, wobe ich da meine Zweifel habe.
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln