Hallo Notes Profis,
ich versuche aktuell mittels C# einen NotesUser zu registrieren. Das klappt auch schon soweit bis auf ein Problem mit dem CreateMailDb Parameter. Ich bekomme beim Registrierungsvorgang den Fehler:
"Notes-Error: Sie haben keine Berechtigung die Operation auszuführen".
Dies passiert offenbar genau dann, wenn versucht wird, diverse Einstellungen (Quota etc.) an der Datenbank zu setzen. Auf der Serverkonsole bekomme ich während des Vorgangs folgende Meldungen:
Database mail\test.nsf create by Lotus Administrator/Notes85
Recovery Manager: Assigning new DBIID for E:\Data\mail\test.nsf (need new backup for media Recovery)
Closed Session for Lotus Administrator/Notes85 ...
Opened Session for Lotus Administrator/Notes85
ATTEMPT TO ACCESS DATABASE mail\test.nsf by Lotus Administrator/Notes85 was denied
ATTEMPT TO ACCESS DATABASE mail\test.nsf by Lotus Administrator/Notes85 was denied
Database mail\test.nsf was deleted by Lotus Administrator/Notes85
Closed Session for Lotus Administrator/Notes85 ...
Sieht also so aus, als ob die DB kurz erzeugt und anschließend wieder gelöscht wird. Allerdings habe ich absolut keine Idee warum.
Hier noch der C# Code (ist nahezu 1:1 identisch mit dem vorgehen in LScript)
NotesSession nSess = new NotesSessionClass();
nSess.Initialize("foo");
NotesRegistration nReg = nSess.CreateRegistration();
nReg.CertifierIDFile = @"C:\Lotus\Notes\Data\IDs\notes85\Cert\notes85.id";
nReg.CreateMailDb = true;
nReg.EnforceUniqueShortName = true;
nReg.Expiration = DateTime.Now.AddYears(2);
nReg.IDType = REG_TYPE.ID_HIERARCHICAL;
nReg.MailInternetAddress = "TestUser@local.de";
nReg.MailQuotaSizeLimit = 200 * 1024;
nReg.MailQuotaWarningThreshold = 190 * 1024;
nReg.MailOwnerAccess = REG_MAILOWNACL.REG_MAIL_OWNER_ACL_MANAGER;
nReg.MailSystem = REG_MAILTYPE.REG_MAILSYSTEM_INOTES;
nReg.MailTemplateName = "mail85.ntf";
nReg.RegistrationServer = "server/domain";
nReg.ShortName = "testuser";
nReg.StoreIDInAddressBook = false;
nReg.StoreIDInMailfile = true;
nReg.SynchInternetPassword = true;
nReg.UpdateAddressBook = true;
nReg.UseCertificateAuthority = false;
nReg.RegisterNewUser(
"Lastname",
@"C:\temp\test.id",
"server/domain";",
"Firstname",
"FL",
"ganzgeheim",
"Location",
"Comment",
@"mail\test.nsf",
"test@local.de",
"ganzgeheim",
"",
"",
USER_TYPE.NOTES_FULL_CLIENT);
Ich hoffe jemand kann mich erleuchten :)
Vielen Dank schonmal!
Der Lotus Administrator ist Mitglied der Gruppe LocalDomainAdmins. Ich habe jetzt folgendes getan.
1. Den Lotus Administrator wie vorgeschlagen in eckigen Klammern im Template eingetragen
2. Zusätzlich das Property MailACLManager des NotesRegistration Objekts gesetzt
nReg.MailACLManager = nSess.EffectiveUserName;
Nun geht die Registrierung sauber durch. Ich werden jetzt die Änderungen am Template Rückgängig machen und schauen, ob, das Setzen des o.g. Properties bereits den erwünschten Effekt bringt.
Vielen vielen Dank für den Hinweis! :)
Nachtrag: Das Setzen vom MailACLManager bringt nicht den gewünschten Erfolg. Für mich stellt sich nun die Frage, warum der Lotus Administrator, wenn er direkt im Template eingetragen ist, Zugriff hat, über seine Gruppenmitgliedschaft in LocalDomainAdmins aber offenbar nicht.
Nachtrag2:
Problem gefunden, LocalDomainAdmins steht im Template NICHT in eckigen Klammern und wird damit offenbar nicht an die entstehende Datenbank "vererbt"
Genau :)
Falls es noch für jemanden von Interesse ist...
Die ganze Geschichte geht doch ohne Änderung am Template. Mein Fehler war, MailOwnerAccess auf "Manager" zu setzen. Diese Einstellung hebelt augenscheinlich das Property MailACLManager aus. D.h.
Das hier führt zu o.g. Problem
nReg.MailACLManager = "CN=Lotus Administrator/O=Notes85";
nReg.MailOwnerAccess = REG_MAILOWNACL.REG_MAIL_OWNER_ACL_MANAGER ;
Das hier funktioniert hingegen...
nReg.MailACLManager = "CN=Lotus Administrator/O=Notes85";
nReg.MailOwnerAccess = REG_MAILOWNACL.REG_MAIL_OWNER_ACL_EDITOR;
Danke für die Hinweise eknori. Notes ist nach wie vor in vielen Dingen Neuland für mich.