HTTPPassword reset via pwdresetsample.nsf speichern mit dem Signer des Agenten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • HTTPPassword reset via pwdresetsample.nsf speichern mit dem Signer des Agenten

    Guten Morgen,

    ich habe nun den Agenten von der pwdresetsample.nsf ein wenig aufgebohrt und es ist mir nun "fast" möglich, das HTTPPassword Feld eines über WEB authentifzierten Benutzers im NAB zu ändern. Ok - möglich ist es mir bis zur letzten Zeile, bis ich das Personendokument speichern möchte :) ERROR unterm Code :)

    Quellcode

    1. Dim session As New NotesSession
    2. Dim db As NotesDatabase
    3. Dim view As NotesView
    4. Dim IDdoc As NotesDocument
    5. Dim uName As String
    6. ' uName wird zugewiesen, quasi der authentifizierte Remote_User(0) der
    7. ' die Webseite gerade aufruft
    8. Set db = session.GetDatabase("","names.nsf")
    9. Set view = db.GetView("($Users)")
    10. Set IDdoc = view.GetDocumentByKey(uName, True)
    11. '
    12. ' hier passiert dann was etc ...
    13. ' und dann passt alles und ich möchte
    14. ' das NAB Dokument speichern
    15. Call IDdoc.Save(True,False)
    Alles anzeigen
    Hier knallt es und es erscheint folgende Fehlermeldung.
    HTTP Server: Agent 'User Password Reset agUserPasswordReset' error: Notes error: You are not authorized to perform that operation

    Der Agent wurde mit dem Benutzer gesigned der auch die Personendokumente ändern darf!

    Interessanterweise ist es so, dass die Session.Username oder Session.CommonUserName den Servernamen ausgibt! Was ich ja noch verstehen kann, da der Agent vom Server ausgeführt wird. Jedoch hat der Server volle Manager Rechte auf der NAB. Von der Logik her, hätte der Server das ändern müssen hat er aber nicht. ABER das möchte ich so gesehen auch nicht, sondern, meine Frage an dieser Stelle, wie stelle ich sicher, dass er das unter dem Benutzerkontext vom Agenten (also des Signers) ausführt?

    Besten Dank im Voraus.

    Grüße
    Deny
    If something's hard to do, then it's not worth doing!
  • Bei Session.EffectiveUsername kommt der authentifizierte WebBenutzer, in dem Fall erstmal ich. Ich finde jetzt leider sie "Security Tab" für den Agenten nicht ... obwohl es ja in dem unteren Link beschrieben ist.
    Und so wie ich es nun verstanden habe, wird diese Kennwortänderung auch mit dem WebBenutzer ausgeführt, jetzt sollte ich das nur noch auf Scheduled Agent ändern. Ich finds aber nicht :)

    Hier der Link Security for agents on servers and the Web
    If something's hard to do, then it's not worth doing!
  • Ahhhh jetzt ja, ich musste im Designer über "Datei -> Vorgaben -> Domino Designer -> LotusScript-Editor den Eclipse basierten LotusScript Editor verwenden" anhaken! Jetzt seh ich die Eigenschaften wieder :) meld mich wenn das geklappt hat und der Haken war auch drin "Als Webbenutzer ausführen"
    If something's hard to do, then it's not worth doing!
  • Ok - das Thema ist für mich gelöst. Das HTTP Password wurde nun geändert. Es lag wirklich daran, dass er als Webbenutzer ausgeführt wurde. Das habe ich nun deaktiviert, jetzt wird er im Kontext des Signierers des Agenten ausgeführt.
    Danke für die Hilfe!!!!

    Beste Grüße
    If something's hard to do, then it's not worth doing!