Регистрация пользователей (RegisterNewUser)

dimat

Well-known member
31.07.2008
508
0
BIT
0
Всем привет!

Agent 'RegisterNewUser' error: Notes error: You are not allowed to update the certifier log (Имя пользователя)


Вот такую ошибку получаю в консоль при попытке зарегистрировать пользователя классом NotesRegistration агентом на сервере.
Подскажите: как исправить?

Код:
Dim nr As New NotesRegistration
nr.CertifierIDFile=certFilePath
nr.GroupList=pdoc.GetItemValue("Group")
nr.IDType=172
nr.IsNorthAmerican=False
nr.RegistrationLog="log.nsf"
nr.RegistrationServer=db.Server
nr.ShortName=UsrNameString
nr.StoreIDInAddressBook=True
nr.UpdateAddressBook=True
nr.MailSystem=REG_MAILSYSTEM_NONE
Call nr.RegisterNewUser(UsrNameString,IdFilePath,"","","",certPwd,"","","","",PswdString,175)

точно такой же код на клиенте работает без проблем
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
516

when you register new users, do you select your local server as the registration server? If so, you should simply check the ACL of certlog.nsf and give yourself at least editor access.

и

 

dimat

Well-known member
31.07.2008
508
0
BIT
0
savl проверил права - для меня и для сервера они максимальные
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
516

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
Вот такое было.
Я бы по одной коментил строки, возможно ещё какая-то опция даёт эту ошибку.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Вновь вернулся к решению проблемы регистрации пользователя на сервере.

Вобщем пользователь теперь регистрируется.
После того как указал RegistrationServer="".

Еще одна проблема появилась, вернее она появилась после обновления сервера до 8.5.3FP2HF25.

При регистрации пользователь не добавляется в группу указанную в параметре GroupList.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
232
dimat
Это также не работает, вернее глючит (то добавляет, то нет, и не поёмёшь, от чего это зависит); и не только в 8.5.3. Я на это не рассчитываю, а добавляю после регистрации вручную.
 
S

Shandrik

В строке Call nReg.RegisterNewUser(...) получил ошибку:

Notes error: The requested item does not exist (Chack)

Причем "Chack" - это первый параметр RegisterNewUser - LastName

Вообще не понимаю происходящего.
 
S

Shandrik

О! Накопал:


Server
"The requested item does not exist" error
You may see this error on your server console after using the CA process to add an Alternate Name to a user:
"Error processing certificate request: The requested item does not exist." This error only occurs if you try to recertify or register a user immediately after you add an Alternate Name to your CA Process-enabled certifier, and before the certifier has automatically refreshed its context.
Workaround
� At the server console, type
tell adminp process all
then
tell ca refresh
� If your CA Process-enabled Notes certifier has been locked with a user ID, you will need to unlock it using the following command:
te ca unlock <X:\user.id> <password>
Be sure to type the full path and file name of the ID file used to lock your CA and the ID's password when using
the unlock command. Type the following to verify that it is active again:
te ca status
� Next, open the Administration Requests database and go to the Certification Authority Requests/Certificate Requests view. Locate and open the rejected request. The request will have been rejected with the following rejection reason:
5935: unknown
� Click Edit Request -> Approve Request. The certificate should be successfully issued.



Убрал упоминания об альтернативных именах и языках и заработало.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
тупо добавляю юзера в нужную АК, группу - через админпроцесс пинаю:
Код:
Sub Initialize
On Error Goto ErrH
Dim status
status=Split({Modifying groups...},{})
Set ses=New NotesSession
Set db=ses.CurrentDatabase
Set agent=ses.CurrentAgent
Dim noteid As String
noteid=agent.ParameterDocID
Dim doc As NotesDocument
Set doc=db.GetDocumentByID(noteid)
Dim adminp As NotesAdministrationProcess
Set adminp = ses.CreateAdministrationProcess(db.Server)
Dim members(0) As String, grps
members(0)=doc.GetItemValue(FULLNAME_FLD)(0)
grps=doc.GetItemValue(GROUPS_FLD)
ForAll grp In grps
noteid$ = adminp.AddGroupMembers(grp, members)
If Len(noteid)=0 Then
status=ArrayAppend(status, ERROR_TXT & CM_ERRADMINPGRPMOD & grp)
MsgBox status(UBound(status))
Else
status=ArrayAppend(status, CM_SUCCESS & grp)
End If
End ForAll
Quit:
If Not doc Is Nothing Then Call doc.ReplaceItemValue(STATUS_FLD, status): Call doc.Save(True, False)
Exit Sub
ErrH:
status=Arrayappend(status, RaiseErrorMsg)
Resume Quit
End Sub
я сторонник системных подходов, но в "неустойчивых" случаях - как-то руками :)
 
S

Shandrik

Применил указанный выше воркэраунд - всё заработало, даже шаблон почтовой базы стал принимать.
 
S

Shandrik

А можно ли заблокировать пользователя?
 

erdi

Green Team
20.08.2008
264
17
BIT
0
создаешь группу с типом запрета доступа, в серверном документе выбираешь ее для запрета и все кто в этой группе находится - не пускаются на сервер
 
S

Shandrik

Имеется в виду кодом - есть ли какой метод, блокирующий юзера?
 
S

Shandrik

создаешь группу с типом запрета доступа, в серверном документе выбираешь ее для запрета и все кто в этой группе находится - не пускаются на сервер
А есть ли возможность кодом удалить оттуда юзера?
 

erdi

Green Team
20.08.2008
264
17
BIT
0
можно....никто тебе не запрещает(кроме админа) взять группу, взять всех членов этой группы и либо удалить, либо добавить пользователя
 
S

Shandrik

Там же только добавление, это я сделал, а как удалить-то?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!