有没有人能够让SSJS CreateAdministrationProcess工作?我搜索过功能代码,但无法找到任何代码。
我正在尝试在SSJS中创建一个adminP请求来设置用户密码。我无法在url方法中使用?changepassword,因为我们不允许网络用户访问NAB。
我正在使用OAUTH,当我尝试在没有管理请求的情况下直接将密码哈希并更新到NAB时,它会在当前客户端会话中产生问题,将其记录下来然后将其锁定。
我认为这是因为我更改了服务器上的凭证令牌,但没有在客户端上更改,当它意识到这一点时,它认为我试图反复验证并锁定我。
如果我无法让SSJS工作,我将把它写在一个lotusscript代理中并从SSJS调用代理,但为了后人,我想直接从SSJS获得AdminP请求。
这是我的代码:
var hashednew = session.hashPassword(thenewpw)
nabDoc.replaceItemValue("HTTPPassword",hashednew)
var dt:NotesDateTime = session.createDateTime("Today 12");
nabDoc.replaceItemValue("HTTPPasswordChangeDate",dt)
dt.recycle()
var nabServerAccessView:NotesView = nabDB.getView("($ServerAccess)")
nabDB.DelayUpdates = false;
var AdminP=sessionAsSigner.CreateAdministrationProcess("abcServerName/Co")
var AdminPNoteId=AdminP.SetUserPasswordSettings(@Name("[ABBREVIATE]" ,@UserName()), 0, 0, 0, True)
nabDoc.save(true,true)
nabServerAccessView.refresh()
它正在崩溃:
var AdminP=sessionAsSigner.CreateAdministrationProcess("abcServerName/Co")
,服务器错误是:
Error calling method 'CreateAdministrationProcess(string)' on an object of type 'lotus.domino.local.Session [Static Java Interface Wrapper, lotus.domino.local.Session: lotus.d
AS A FOLLOWUP,
我发布的原始代码实际上超过了大写/小写的问题。我能够让它工作,但我直接更新到NAB的方式是错误的。我找到了一个更好的方法来使用SSJS使用以下代码段进行密码更改,而且非常简单。当然,您必须首先验证旧密码和新密码的复杂性,但是一旦完成,您可以运行以下命令:
try {
var AdminP=sessionAsSignerWithFullAccess.createAdministrationProcess(server)
var chgPW=AdminP.changeHTTPPassword(theuser,theoldpw,thenewpw)
} catch(e) {print("AdminProcess configure error: " + e)}
答案 0 :(得分:2)
在我看来,问题在于命名约定 - Java方法以小写字母开头。
var AdminP=sessionAsSigner.createAdministrationProcess("abcServerName/Co")
var AdminPNoteId=AdminP.setUserPasswordSettings(@Name("[ABBREVIATE]" ,@UserName()), 0, 0, 0, True)
答案 1 :(得分:0)
请检查您的ACL设置:“最大网络名称和密码”是否设置为“经理”或“设计师”?