Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet 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
-
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
-
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
-
schau Dir doch mal die Applikation an ....
http://openntf.org/Projects/pmt.nsf/4cf7002b4da2f726862570ef007ed885/73A9E9F4351F461B862575990076CB69/$file/ZZ39B17703.jpg
-
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...
-
schau Dir doch mal die Applikation an ....
http://openntf.org/Projects/pmt.nsf/4cf7002b4da2f726862570ef007ed885/73A9E9F4351F461B862575990076CB69/$file/ZZ39B17703.jpg
Danke, werde ich mir mal anschauen :)
-
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.