2013-04-17 40 views

回答

0

方法在兩個答案都是正確的。但他們將在筆記客戶端上工作...

簽署任何文檔需要存在於您的ID文件中的私鑰。因此,通常情況下,您不能使用未在Notes客戶機上運行的代碼簽署代理。

但是,有些產品(例如Ytria SignEZ)使用C-API簽名設計元素,但它們將必要的ID文件緩存在安全存儲中(使用最新版本ID Vault可用於此目的,但我不知道多少API的一部分對我們開放)。

更新:正如Fredrik所說,通過管理請求始終可以使用服務器ID進行簽名。

6

運行此代碼與簽名者ID在優選的試劑

Dim session As New Notessession 
Dim db As Notesdatabase 
Set db = session.Currentdatabase 
Call db.sign(DBSIGN_DOC_ALL) 
在SSJS

var DB:NotesDatabase=sessionAsSigner.getDatabase(database.getServer(),database.getFilePath()); 
DB.sign(NotesDatabase.DBSIGN_DOC_ALL) 

============ =====

更新

的LotusScript

dim AdminPNotesId 
dim AdminP as NotesAdministrationProcess 
Set AdminP = notesSession.CreateAdministrationProcess(Server) 
AdminpNoteId=AdminP.SignDatabaseWithServerID(Server,Database) 

SSJS

var AdminP=sessionAsSigner.CreateAdministrationProcess(Server) 
var AdminPNoteID=AdminP.SignDatabaseWithServerID(Server,Database) 
+1

但是,這隻能運行在客戶端,而不是在服務器上,或者我錯了嗎? –

+1

謝謝Sven糾正我,有點快:--) 正確的方法是使用AdminP進程和函數signDatabaseWithServerID(服務器,數據庫) –

0

我這個幾年前使用LS代理完成。我記得是這樣的:

  1. 得到含有NotesNoteCollection所有代理
  2. 遍歷集合訪問其所有noteIds
  3. 訪問的每個設計文檔使用這些noteIds並檢查它是否指向想要的代理
  4. 標誌使用

    NotesDocument.Sign

代理的設計文檔3210

雖然我從來沒有嘗試過使用SSJS。但它的作品至少使用代理與適當的ID簽名(見下面的更新)

編輯1: @Sven:當然,我忘了提,你需要保存設計文檔簽名後.. 。

編輯2: @Serdar:你說的沒錯:籤我需要簽名者的Notes標識的代理,所以弗萊德的更新的解決方案是一個

+1

5.你必須保存文檔* NotesDocument.save *; - ) –

相關問題