Domino 9 und frühere Versionen > ND6: Entwicklung

Datenbank per Agent signieren

(1/1)

atbits:
Ein kleiner Codeschnipsel um eine DB zu signieren.

Wenn man diesen Code in einen Agenten packt und diesen Agenten signiert und nicht mehr anfasst und diesen Agenten dann über einen 2. Agenten per runOnServer aufruft, dann kann man auch mit einem User signieren, dessen Passwort / ID man nicht bekommt (Admin sei Dank).

Also die beiden Agenten vom Admin-User richtig signieren und dann nie wieder zum Admin rennen müssen

Vielleicht hilft der Code ja auch dem ein oder anderen geplagten Entwickler ;-)

Grüße David


--- Code: ---
Dim session As New NotesSession
Dim db As NotesDatabase
Dim nc As NotesNoteCollection
Dim nid As String, nextid As String  'note IDs
Dim i As Integer
Dim doc As NotesDocument

  REM Create note collection
Set db = session.CurrentDatabase
Set nc = db.CreateNoteCollection(True)
nc.SelectDocuments = True
Call nc.BuildCollection

  REM Modify the collection - take out test documents
nid = nc.GetFirstNoteId
For i = 1 To nc.Count
    'get the next note ID before removing any notes
nextid = nc.GetNextNoteId(nid)
Set doc = db.GetDocumentByID(nid)
'Msgbox("<"+doc.Signer)
Call doc.Sign()
Call doc.Save(True,False,True)
'Msgbox(">"+doc.Signer)
nid = nextid
Next


--- Ende Code ---

Glombi:
Das wäre ein Verstoss gegen das Sicherheitskonzept von Notes, falls es funktioniert!  :o

Aber wenn es geht - OK. Denn sowas brauche ich eigentlich.

Probiert hatte ich es mit
Call notesDatabase.Sign(...)
und einen RunOnServer Agent. Aber es geht nicht.

In der Hilfe steht dazu
This method executes only on a workstation.

Andreas

Glombi:
Wie erwartet geht es nicht. Im Log steht immer

17.11.2006 09:13:25   Agent printing: Agent Sign gestartet
17.11.2006 09:13:25   Agent 'Sign' error: You must have permission to sign documents for server based agents

Der Unterzeichner des Agents sowie der aufrufende User darf auf dem Domino Server alles.

Andreas

atbits:
Hm, bei mir geht das

was für eine Serverversion verwendest Du (7)?

Grüße David

atbits:
Argh - vermutlich hast Du Recht - in meiner Euphorie hab ich das nicht über den runOnServer aufgerufen sondern direkt - und keinen Unterschied gemerkt, weil ich auch AgentSigner war.

 :-[

Grüße David

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln