Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pimpfling am 18.08.10 - 18:17:12

Titel: HTTPPassword per LS setzen klappt nicht.
Beitrag von: pimpfling am 18.08.10 - 18:17:12
Hallo,

leider habe ich hier keine Lösung zu meinem Problem gefunden.
Ich erstelle per LS Agent in einer DB ein Personendokument im DD.
Das Felder stzen klappt ordentlich, bis auf das HTTPPassword Feld.
Wenn ich das Personendokument nochmal öffne und neu abspeicher, wird der Hashwert neu berechnet.

Hier der Code meines Agenten:

Dim session As New Notessession   
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim Doc As NotesDocument
   Dim dddoc As NotesDocument
   Dim item As NotesItem
   Dim listitem As NotesItem
   
'Settings für die Datenbank Variablen   
   Set db = session.CurrentDatabase
   Set view = db.GetView( "vwNewPersons" )
   Set Doc = view.GetFirstDocument
   
'Settings für die Domino Directory Datenbank
   Dim dddb As New NotesDatabase( "DominoServer","test-names.nsf" )
   
   
   
'Schleife über alle Doks in der New Persons View
   
   While Not ( doc Is Nothing )
      If Doc.Status(0) = "New" Then
         Print "New User found: " + doc.FirstName(0) + " " + doc.LastName(0)
         
         meinPasswort = passwordGenerator(8)
         Print "PWD: " + meinPasswort
         
         Print "Create now document in Domino Directory"
         
         Set dddoc = dddb.CreateDocument
         dddoc.Form = "Person"
         
         dddoc.FirstName = doc.FirstName(0)
         dddoc.LastName = doc.LastName(0)
         dddoc.FullName = "CN=" + doc.FirstName(0) + " " + doc.LastName(0) + "/O=" + doc.CompanyName(0)
         Set listitem = dddoc.GetFirstItem( "FullName" )
         Call listitem.AppendToTextList( doc.FirstName(0) + " " + doc.LastName(0) )         
         dddoc.CellPhoneNumber = doc.CellPhoneNumber(0)
         dddoc.CompanyName = doc.CompanyName(0)
         dddoc.HTTPPassword = "test123"
         dddoc.MailAddress = doc.MailAddress(0)
         dddoc.MailSystem = "5"
         dddoc.OfficePhoneNumber = doc.OfficePhoneNumber(0)
         dddoc.Owner = "Stefan Senf/ilink"
         dddoc.ShortName = doc.MailAddress(0)
         dddoc.Type = "Person"
         
         Set item = dddoc.GetFirstItem("Fullname")
         item.IsAuthors = True
         
         
         Call dddoc.ComputeWithForm( True, True )
         Call dddoc.Save( True, True )
         
      End If
      Set doc = view.GetNextDocument( doc )
   Wend
   
Titel: Re: HTTPPassword per LS setzen klappt nicht.
Beitrag von: pimpfling am 18.08.10 - 18:18:06
Hier noch der Code vom PWD Generator:

Function passwordGenerator(Byval lngLength As Long) As String
   
' Description: Generate a random password of 'user input' length
' Parameters : lngLength - the length of the password to be generated
' Returns    : String    - Randomly generated password
' Created    : 08/21/1999 Andrew Ells-O'Brien (andrew@ellsobrien@msn.com)
' Updated    : Rocky Oliver, Sapphire Oak Technologies (rock@sapphireoak.com)
    ' made it work in LotusScript
   On Error Goto errHandler
   Dim iChr As Integer
   Dim c As Long
   Dim strResult As String
   Dim iAsc As String
   
   Randomize Timer
   
   For c = 1 To lngLength                           
          ' Randomly decide what set of ASCII chars we will use
      iAsc = Int(3 * Rnd + 1)
      
          'Randomly pick a char from the random set
      Select Case iAsc
      Case 1
         iChr = Int((Asc("Z") - Asc("A") + 1) * Rnd + Asc("A"))
      Case 2
         iChr = Int((Asc("z") - Asc("a") + 1) * Rnd + Asc("a"))
      Case 3
         iChr = Int((Asc("9") - Asc("0") + 1) * Rnd + Asc("0"))
      Case Else
         Error 1000, "PasswordGenerator has a problem."
      End Select
      
      strResult = strResult & Chr(iChr)
   Next c
   
   PasswordGenerator = strResult
   
getOut:
   Exit Function
   
errHandler:
   Msgbox Error$ & "(" & Err & ") [in " & Lsi_info(2) & "]"
   PasswordGenerator = ""
   Resume getOut         
End Function
Titel: Re: HTTPPassword per LS setzen klappt nicht.
Beitrag von: koehlerbv am 18.08.10 - 20:42:47
Stefan, an Deinem Code passt aber nix zusammen. Du belegst HTTPPassword mit "test123" und veröffentlichst danach Deinen "PasswortGenerator", der lt. Code für nix arbeitet.

Schau Dir doch bitte einfach mal an, was der Button über dem Feld HTTPPassword tut und vor allem, was im Feld selbst passiert.
Und das brauchst Du nur in LS nachzubilden.

Bernhard
Titel: Re: HTTPPassword per LS setzen klappt nicht.
Beitrag von: Christopher am 18.08.10 - 22:24:58
schau Dir doch mal die Applikation an ....

http://openntf.org/Projects/pmt.nsf/4cf7002b4da2f726862570ef007ed885/73A9E9F4351F461B862575990076CB69/$file/ZZ39B17703.jpg
Titel: Re: HTTPPassword per LS setzen klappt nicht.
Beitrag von: pimpfling am 19.08.10 - 08:41:41
Stefan, an Deinem Code passt aber nix zusammen. Du belegst HTTPPassword mit "test123" und veröffentlichst danach Deinen "PasswortGenerator", der lt. Code für nix arbeitet.

Schau Dir doch bitte einfach mal an, was der Button über dem Feld HTTPPassword tut und vor allem, was im Feld selbst passiert.
Und das brauchst Du nur in LS nachzubilden.

Bernhard

ja, sorry, das mit dem test123 habe ich reingenommen um zu sehen ob der Hashwert immer der selbe ist.

Der Knopf macht im wesentlichen zwei Sachen die ich ncht mache:

@SetField("HTTPPassword";tmpPassword); <-- Mache ich auch
@SetField("HTTPPasswordChangeDate";@Now)));  <-- Mache ich nicht
@Command([ViewRefreshFields]); <-- Mache ich auch nicht, oder kommt das mit dem computewithform ?

Werde jetzt auch noch das HTTPPasswordChangeDate setzen, mal schauen ob klappt...
Titel: Re: HTTPPassword per LS setzen klappt nicht.
Beitrag von: pimpfling am 19.08.10 - 08:42:25
schau Dir doch mal die Applikation an ....

http://openntf.org/Projects/pmt.nsf/4cf7002b4da2f726862570ef007ed885/73A9E9F4351F461B862575990076CB69/$file/ZZ39B17703.jpg

Danke, werde ich mir mal anschauen :)
Titel: Re: HTTPPassword per LS setzen klappt nicht.
Beitrag von: pimpfling am 19.08.10 - 09:17:08
schau Dir doch mal die Applikation an ....

http://openntf.org/Projects/pmt.nsf/4cf7002b4da2f726862570ef007ed885/73A9E9F4351F461B862575990076CB69/$file/ZZ39B17703.jpg

Der Tipp war super :)
Die folgende Zeile hats jetzt gebracht:

dddoc.HTTPPassword = session.HashPassword(meinPasswort)

Dankeschön.