Hi,
mittlerweile habe ich session based athenticatio erfolgreich aktiviert.
Man muss auch nur die Hilfe genau lessen und die domcfg.nsf auch so benennen.
Ich beschriebe jetzt noch mal, was ich vorhabe:
Ich bastele gerade an einer DB.
In dieser DB soll ein User-Bereich eingerichtet werden. Für die User wird die Db ausschließlich aus dem Web erreichbar sein.
Allerdings können die User sich NICHT selbst registrieren, sondern sollen von mir per Form aus dem Client registriert werden.
Bislang registriere ich die User per ADministrator -allerdings ist mir das zu umständlich...
Die User erhalten nur einen Usernamen und ein Passwort - kein MailFile
Das Passwort kann später mit Hilfe der domcfg.nsf geändert werden.
Ich habe also eine Form mit Feldern für den
- Username und das
- Password
Hinter einem Button "Registrieren" muss nun mein LS mit Hilfe des Certified Password, dem LastName, dem Password, Mail System = None, Set Internet Password = True, MinPasswordLength = 1 und Create a Notes ID for this person
den User in der names.nsf registrieren.
In der Hilfe habe ich
Sub Initialize
Dim session As New NotesSession
Dim reg As New NotesRegistration
dt = Datenumber(Year(Today)+1, Month(Today), Day(Today))
reg.RegistrationServer = "AceOne"
reg.CreateMailDb = False
reg.CertifierIDFile = "c:\NotesAdministrator\cert.id"
reg.Expiration = dt
reg.IDType = ID_HIERARCHICAL
reg.MinPasswordLength = 5 ' password strength
reg.IsNorthAmerican = True
reg.OrgUnit = "AceHardwareNE"
reg.RegistrationLog = "log.nsf"
reg.UpdateAddressBook = True
reg.StoreIDInAddressBook = True
Call reg.RegisterNewUser("Yip", _ ' last name
"c:\NotesAdministrator\jyip.id", _ ' file to be created
"CN=Mail_AceOne/O=AceHardware", _ ' mail server
"Jimmy", _ ' first name
"", _ ' middle initial
"AceHardware", _ ' certifier password
"", _ ' location field
"", _ ' comment field
"jyip.nsf", _ ' mail file
"", _ ' forwarding domain
"AceHardware", _ ' user password
NOTES_DESKTOP_CLIENT) ' user type
End Sub
gefunden - aber ich kriege es nicht hin, dass das Mailfile etc nicht angelegt wird...
Und der User mit dem Namen, den ich in einem Feld eingetragenhabe auch registrierrt wird.
Kann mir jemand hierbei helfen??
Danke
Alex
Hallo,
vielleicht kann es jemand anders ja auch noch gebracuhen:
'Personendokument erstellen (dd = Domino Directory)
Set ddDoc = dd.CreateDocument()
'Werte von der Anmeldung
ddDoc.comment=##comment##
ddDoc.HTTPPassword=s.HashPassword(##password##)
ddDoc.firstname=##firstname##
ddDoc.lastname=##lastname##
ddDoc.FullName=##firstname##+" "+##lastname##
ddDoc.MailAddress=##email##
ddDoc.shortName=##shortName##
'Spezielle Werte für Personendokumente
' Mailsytem = "5" heißt Mails werden an die im Personendokument angegebene E-Mailadresse weitergeleitet. "100" = Kein Mailsystem
ddDoc.Mailsytem="5"
ddDoc.Type="Person"
ddDoc.form="Person"
success = ddDoc.ComputeWithForm( False, False )
'Wenn valedirung mit person Form nicht erfolgreich Fehler ausgeben und ddDoc nicht speichern
If Not success Then
Print ("Fehler bei der erstellung von:"+doc.lastname(0)+", "+doc.firstname(0))
Else
Call ddDoc.Save(True,True)
Print ("Nutzer "+doc.lastname(0)+", "+doc.firstname(0)+ " erstellt")
End If
Eigentlich fehlt jtzt nur noch die Abfrage, ob schon ein gleicher User wie der neuanzulegende in der DB vorhanden ist!
Alex
1. die Ansicht ($VIMPeople) eignet sich gut zur Überprüfung, ob es dem User schon gibt.
so nach dieser ARt:
vwUsers = db.getView("($VIMPeople)")
vwUsers.refresh ' wichtig!
set docExistingUser = vwUsers.GetDocumentByKey (doc.FullName(0));
if not ExistingUser is Nothing then
-> name schon da
else
registrieren.
Das mit dem Mailsystem kannte ich nicht.
Ich würd auch die Meldung
Print ("Nutzer "+doc.lastname(0)+", "+doc.firstname(0)+ " erstellt")
nicht in die Log.nsf schreiben (da steht eh schon zu viel Unsinn), sondern übersichtlich in eine LogDatenbank (suche Designerhilfe nach alog4.ntf. Solche wichtige Ereignisse würd ich immer in eine Log-Datenbank schreiben.