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