有人能让SSJS CreateAdministrationProcess工作吗?我搜索了功能代码,但没有找到任何代码。
我试图在SSJS中创建一个adminP请求来设置用户密码。我不能在url方法中使用?changepassword,因为我们不允许web用户访问NAB。
我使用的是OAUTH,当我试图在没有adminp请求的情况下将密码直接散列和更新到NAB时,它会在当前客户端会话中产生问题,将它们记录出来,然后将它们锁定。
我认为这是因为我更改了服务器上的凭据令牌,而不是客户端上的凭据令牌,当它意识到这一点时,它认为我正在一遍又一遍地进行身份验证,并将我锁在门外。
如果我无法让SSJS工作,我将用lotusscript代理编写它,并从SSJS调用代理,但是为了后代的考虑,我想让AdminP请求直接从SSJS中运行。
这是我的代码:
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
作为后续行动,
实际上,我发布的原始代码不仅仅是大写/小写的问题。我能够让它开始工作,但是我直接向NAB更新的方式是错误的。我找到了一种更好的方法来使用下面的代码片段使用SSJS进行密码更改,这非常简单。当然,您必须首先验证旧密码和新密码的复杂性,但一旦完成,您可以运行以下命令:
try {
var AdminP=sessionAsSignerWithFullAccess.createAdministrationProcess(server)
var chgPW=AdminP.changeHTTPPassword(theuser,theoldpw,thenewpw)
} catch(e) {print("AdminProcess configure error: " + e)}
发布于 2014-09-16 14:31:55
在我看来,问题在于命名约定- Java方法从小写字母开始。
var AdminP=sessionAsSigner.createAdministrationProcess("abcServerName/Co")
var AdminPNoteId=AdminP.setUserPasswordSettings(@Name("[ABBREVIATE]" ,@UserName()), 0, 0, 0, True)
https://stackoverflow.com/questions/25862208
复制相似问题