Autor Thema: Automatisiertes XZertifikat  (Gelesen 1067 mal)

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Automatisiertes XZertifikat
« am: 23.12.05 - 12:25:25 »
Hallo!

Gibt es einge Möglichkeit (mit Script/Formelsprache) eine neue Organisationseinheit für die User querzuzertifizieren.

Ich würde gerne dieses Script in unseren Portal starten und damit erreichen, dass nicht immer ein Dialog zur Querzertifizierung geöffnet wird für den User bis dieser einmal "JA" sagt.

Hat hier jemand eine Lösung?

Gruß
Chris

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Automatisiertes XZertifikat
« Antwort #1 am: 30.12.05 - 16:08:17 »
Mittlerweile habe ich einen Lösungsansatz!

Kopieren der Zertifizikate für die Organisationseinheit in der man ist aus dem "Domino Directory" in das persönliche Adressbuch....

Die ersten Tests haben geklappt. Ich werde ein Script hierzu schreiben und berichten, wie meine Erfolge waren.

Ich wünsche einen Guten Rutsch!

Chris

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Automatisiertes XZertifikat
« Antwort #2 am: 30.12.05 - 19:04:10 »
Ich habe ein Script erstellt, dass die XZertifikate für eine Organisationseinheit aus dem "Domino Directory" ins "Persönliches Adressbuch" kopiert.

Aufgerufen wird dies mit:
     call getXCertificates("O=MyCompany")


Code
Sub getXCertificates(cert As String)
	' Copy the Cross-Certificate of the Organisation in the local Addressbook
	On Error Goto failue
	
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim persdb As NotesDatabase
	Dim adrdb As NotesDatabase
	Dim server As String
	Dim v As NotesView
	Dim crossdocs As NotesDocumentCollection
	Dim perNames As String
	Dim crossdoc As NotesDocument
	Dim persView As NotesView
	
	perNames = s.GetEnvironmentString("names",True)
	If perNames="" Then
		Print "No notes.ini entry, using default!"
		perNames="names.nsf"
	End If
	
	Print "User personal Adressbook: '"+perNames+"'"
	
	Set persdb = s.GetDatabase("",perNames)
	Set persView = persdb.GetView("($CrossCertByName)")
	
	Set db = s.CurrentDatabase
	server = db.Server
	
	Set adrdb = s.GetDatabase(server,"names")
	Set v = adrdb.GetView("($CrossCertByName)")
	Set crossdocs = v.GetAllDocumentsByKey(cert+":",False)
	
	If crossdocs.count = 0 Then
		Print "No Docs found!"
		Exit Sub
	End If
	
	For i=1 To crossdocs.Count
		Set crossdoc = crossdocs.GetNthDocument(i)
		key = crossdoc.IssuedBy(0)+":"+crossdoc.IssuedTo(0)
		If persView.GetDocumentByKey(key,True) Is Nothing Then
			Print "Copy Entry for "+key
			Set xdoc = crossdoc.CopyToDatabase(persdb)
			Call xdoc.save(True,True)
			
		End If
	Next
ende:
	Exit Sub
failue:
	Print "X-Certification had failed!"
	Resume ende
End Sub

Vielleicht kann man den Code so aufbohren, dass dieser allen hier nutzt?

Gruss & Guten Rutsch
Chris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz