Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: alexbeer am 10.08.05 - 00:51:30

Titel: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 10.08.05 - 00:51:30
Hallo,

ich bastele gerade an einer DB.
Hierzu ist es notwendig, dass ich neue User für diese DB per Form (aus dem Notes Client) registriere. An die gerade registrierten Nutzer sende ich dann manuell eine eMail mit seinem vorläufigen Passwort.
Grund: Die späteren Nutzer sollen den NotesAdministrator nicht benutzen (dürfen)!

Dieser (über die Form registrierte) Nutzer hat jedoch NUR WEBZUGRIFF!

Wie kann ich es dann erreichen, dass der User sein Passwort vom Web aus ändern kann - es muss dann ja wieder in die names.nsf zurückgeschrieben werden!

Vielen Dank

mfg

Alex

In der Hilfe habe ich die entsprechenden Funktionen nicht gefunden!
Mit @Functions scheint es nicht zu gehen - also nur mit LotusScript, oder?
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 10.08.05 - 07:34:41
Wenn Du Session Based Authentication in Kombination mit der DOMCFG.nsf verwendest kannst Du das Passwort ganz bequem per URL ändern.

Einfach an deine DB ein "?ChangePassword" anhängen, dann wird der Passwortdialog
aufgerufen: altes PW + 2 mal neues PW.

gruss
umi
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: robertpp am 10.08.05 - 07:36:12
Hierzu ist es notwendig, dass ich neue User für diese DB per Form (aus dem Notes Client) registriere. An die gerade registrierten Nutzer sende ich dann manuell eine eMail mit seinem vorläufigen Passwort.

wie willst du dem user das pwd übermittelen per mail wenn der sein pwd doch noch garnicht hat? Der kann ja ohne pwd ins Notes nicht hinein.

Robert
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 10.08.05 - 07:55:26
Nicht jeder der auf einen Notesserver zugreifen kann, muss zwangsläufig Mail benutzen.

Notes kann noch mehr als nur Mail :-)

gruss
umi
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: Tode am 10.08.05 - 09:21:27
hmmm..... wenn Du uns sagen würdest, WIE diese Form die User erstellt, dann könnten wir Dir helfen.

Wenn das sauber über die NotesRegistration- Class läuft, dann sollte das kein Problem sein. Wenn einfach "stupide" zu Fuss ein neues Dokument in der names.nsf angelegt wird, dann hast Du weder einen Notes- Schlüssel noch eine Notes-ID also auch keinen Zugriff über den Client auf Notes....

HTH
Tode
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 10.08.05 - 09:23:29
Er spricht ja nur von Webzugriff....
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: Tode am 10.08.05 - 09:42:02
pardon... jetzt hatte ich mich komplett vergallopiert, weil ich nicht richtig gelesen hatte....

ich ziehe meine Aussage komplett zurück....

Tode
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 10.08.05 - 15:46:51
Hi,

da muss ich mich ja schon fast entschuldigen, dass ich erst jetzt antworte:

Also ich versuch es nochmal darzulegen:

Es wird wenige User (max. 5) mit Schreibrechten (Dokumente anlegen, etc ) geben, die die DB per Notes Client öffnen.

Alle anderen User haben nur lesend Zugriff auf ihren Bereich und loggen sich per Web ein.
Die User KÖNNEN sich NICHT selbst registrieren.

Die Registrierung übernimmt einer der 5 User, die den NotesClient haben.
Bislang registriere ich die web-User mit dem Administrator um die names.nsf des Servers vernünftig zu verwenden. Das geht auch.
Damit die NotesClient-User nicht den Administrator verwenden müssen - wollte ich die Registrierung über eine Form laufen lassen. Habe irgendwo im Web gefunden gehabt, wie das mit LotusScript geht (finde es gerade nicht).
Sie vergeben also einen Login-Namen und ein Passwort und senden dies den Web-Usern per Mail zu.

Zitat
Wenn das sauber über die NotesRegistration- Class läuft ...

Das sollte es zumindest.
Die Web-User sollen sich dann mit dem zugesandten Passwort einloggen und dies selbst ändern können.
In der Designer Hilfe habe ich gefunden gehabt, dass die @Function @UserIDSetPassword (ich glaube so hieß sie) aus dem Web nicht funktioniert.

Um die Passwort-Änderung den Web-Usern dennoch zu ermöglichen, wollte ich fragen, wie ich das per LS bewerkstelligen kann.

Den Tipp
Zitat
?ChangePassword
werde ich nachher mal ausprobieren.

Ich hoffe dass ich das ganze jetzt eindeutiger erklären konnte.

Vielen DAnk schonmal

Gruß
Alex
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: datenbanken24 am 10.08.05 - 21:14:48
@UMI,
ich hab hier "mitgehört",
und hätte mal eine Bitte.

Zitat
Wenn Du Session Based Authentication in Kombination mit der DOMCFG.nsf verwendest kannst Du das Passwort ganz bequem per URL ändern.

Einfach an deine DB ein "?ChangePassword" anhängen, dann wird der Passwortdialog
aufgerufen: altes PW + 2 mal neues PW.

gruss
umi

Nutzt ihr das,
und wenn ja, könntest Du mal etwas ausprobieren?

Wenn ich hier Passwörter mit dem ?ChangePassword -URL ändere,
funktioniert das eigentlich ganz gut.
ABER - wie auch immer das geht - es bleiben dann auch die alten Passwörter aktiv...

Das heißt, das neue Passwort geht dann für den Benutzer - das alte aber auch noch - und wenn ich das fünf mal wiederhole, dann gehen fünf Passwörter !
(für ein und denselben Benutzer) SEHR MYSTERIÖS...

Das ganze auch noch nach zwei Tagen.
Kannst Du das nachvollziehen bei Euch ?

(Domino 6.0.3 on Linux)

Danke und Gruß,
Uwe
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 11.08.05 - 08:02:01
@alexbeer:
Wenn die User nur WEbzugriff benötigten, brauchen die aber gar keine ID.
Da reicht ja der Eintrag im NAB.

@datenbank24
Sieh mal das an:
http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/9a1d926f24ce1f8585256cde005541f7?OpenDocument
Domino cached die PW's für 2 Tage.

gruss
umi
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: datenbanken24 am 11.08.05 - 08:18:24
Danke @Umi !

Das kannte ich noch nicht, beschreibt aber genau das, was ich meine.
Und scheint ja auch seinen Grund zu haben und änderbar zu sein.
Perfekt.

Gruß,
Uwe
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 11.08.05 - 09:57:57
Hi,

danke für die Hilfe.
Wenn ich in der Url nach meiner DB ein ?ChangePassword anfüge, dann erhalte ich den Fehler
Zitat
Error 501
HTTP Web Server: Function Not Implemented Exception
Anscheinend habe ich mit der domcfg.nsf Kombination noch was falsh gemacht.
Vielen Dank aber erstmal für eure Hilfe!

Alex
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 11.08.05 - 10:00:11
Es sollte eigentlich funktionieren, wenn die DOmcfg.nsf vom Template erstellt wurde und im Serverdokument bzw. InternetSite dokumenten die Session Based authentication aktiviert wurde.

gruss
umi
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 11.08.05 - 10:26:26
Hi,

okay, ich bin gerade dabei "Session based web services" zu aktivieren.
Das ?ChangePassword nicht funktionierte, liegt dann wohl daran, dass das nicht aktiviert war.

Danke
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 28.08.05 - 16:48:29
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
Code
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
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: Tode am 29.08.05 - 08:45:04
für einen reinen Web- Zugriff musst Du die User (wie früher erwähnt) nicht registrieren.

Du erstellst einfach ein neues Dokument mit der Maske "Person" im NAB und füllst Vorname, Nachname, Benutzername, Shortname und Kennwort.

FERTIG.

Keine reg- Klasse nötig, keine "echte" Registrierung nötig.

Einfach

set doc = new NotesDocument( DeinNab )
doc.Form = "Person"
doc.FirstName = "Hans"
doc.LastName = "Wurst"
doc.UserName = "Hans Wurst"
doc.HTTPPasword = Inhalt Deines Form-Passwort-Feldes (Feld-eigenschaften im NAB abschauen)
doc.ShortName = "hans.wurst"
doc.MailAddress = "hans.wurst@irgendwo.de"
...

HTH
Tode
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 29.08.05 - 08:45:49
Hi,
Warum so kompliziert?
Ich weiss es ist nicht die sauberste Lösung, aber ich habe da was ähnliches realisiert.
Ich erstelle direkt ein Dokument im Adressbuch mit den benötigten Feldern. Der Account ist dann praktisch sofort aktiv.

gruss

umi

PS: Wichtig: die Felder Form="Person" und Type="Person" setzen, sonst sieht man das Dokument nicht in den Ansichten.
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 29.08.05 - 17:26:13
Okay,

werde ich nachher mal ausprobieren

Alex
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: alexbeer am 01.09.05 - 23:50:04
Hallo,

vielleicht kann es jemand anders ja auch noch gebracuhen:

Code
            '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
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: flaite am 02.09.05 - 00:04:47
1. die Ansicht ($VIMPeople) eignet sich gut zur Überprüfung, ob es dem User schon gibt.
so nach dieser ARt:
Code
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.

Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: koehlerbv am 02.09.05 - 00:33:01
Die Ansicht für die Überprüfung bestehender Namen hinsichtlich möglicher Konflikte ist "($Users)". Wenn man nur "($VIMPeople)" verwendet, könnte man auf die Nase fallen. Und das tut ja nicht not.

Bernhard
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: flaite am 02.09.05 - 06:47:17
Unter welchen Voraussetzungen könnte man auf die Nase fallen?
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: umi am 02.09.05 - 07:33:11
Hi
2 Mal die gleiche Emailadresse hat Notes auch nicht so gern.
oder identische shortnames sorgen auch immer für Verwirrung
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: flaite am 02.09.05 - 13:21:36
Dann dürfte eine db.Search() am besten sein  ???
Titel: Re: User per Form registrieren + Passwort-Änderung aus dem Web
Beitrag von: koehlerbv am 02.09.05 - 13:24:15
Nein, sondern ein GetDocumentByKey in der Ansicht "($Users)"  ;)

Bernhard