有没有办法以编程方式对数据库中的代理进行签名?我想使用在服务器上运行的代理来签署我通过它的数据库的代理。我想使用 LotusScript 或 XPage 来执行此操作。
乔丹
有没有办法以编程方式对数据库中的代理进行签名?我想使用在服务器上运行的代理来签署我通过它的数据库的代理。我想使用 LotusScript 或 XPage 来执行此操作。
乔丹
在 Lotusscript 中使用代理中首选的签名者 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)
==================
莲藕
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)
几年前,我使用 LS 代理完成了这项工作。我记得它是这样的:
使用签署代理的设计文档
NotesDocument.Sign
不过,我从未尝试过使用 SSJS 来做到这一点。但它至少可以使用使用适当 ID 签名的代理(请参阅下面的更新)
编辑1: @Sven:当然,我忘了提到你需要在签名后保存你的设计文档......
编辑 2: @Serdar:你说得对:要签署代理我需要签名者的 Notes ID,所以 Fred 的更新解决方案是一个
两个答案中的方法都是正确的。但他们将在笔记客户端上工作......
签署任何文件都需要一个存在于您的 ID 文件中的私钥。因此,通常,您不能使用不在 Notes 客户端上运行的代码对代理进行签名。
但是,有些产品(例如Ytria SignEZ)使用 C-API 对设计元素进行签名,但它们会将必要的 ID 文件缓存在安全存储中(最近版本的 ID Vault 可用于此目的,但我不知道 API 的多少部分对我们开放)。
更新:正如 Fredrik 所说,始终可以通过管理员请求使用服务器 ID 进行签名。