Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: atbits am 17.11.06 - 08:49:50

Titel: Datenbank per Agent signieren
Beitrag von: atbits am 17.11.06 - 08:49:50
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

Titel: Re: Datenbank per Agent signieren
Beitrag von: Glombi am 17.11.06 - 08:59:36
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
Titel: Re: Datenbank per Agent signieren
Beitrag von: Glombi am 17.11.06 - 09:14:06
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
Titel: Re: Datenbank per Agent signieren
Beitrag von: atbits am 01.12.06 - 10:10:32
Hm, bei mir geht das

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

Grüße David
Titel: Re: Datenbank per Agent signieren
Beitrag von: atbits am 01.12.06 - 10:13:06
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