Autor Thema: NotesUIDatabase.Close  (Gelesen 1407 mal)

Offline Ruedi

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
NotesUIDatabase.Close
« am: 14.07.11 - 12:03:02 »
Ich habe eine ID, die berechtigt ist, als Autor auf die DB zuzugreifen. Der Zugriff erfolgt aus einer andern DB über einen Agenten. Nun will ich nicht, dass diese ID die DB öffnen kann und dort direkt Änderungen vornimmt.

Mein Ansatz war nun, im Postopen-Event des Database-Skripts zu prüfen, ob der aktuelle User zum Zugriff berechtigt ist. Falls nicht, habe ich die DB mit Source.Close() wieder geschlossen.

Das funktionierte auch sehr schön. Allerdings funktioniert es offenbar nicht mehr, wenn ich die DB in einem Frameset öffne, der selbst wieder Framesets enthält. Source.Close() wird in diesem Fall einfach ignoriert.

Gibts einen einfachen Workaround, den ich standhaft übersehe? Oder gibts eine andere, bessere Lösung für mein Problem? Danke für eure Hilfe!

Ruedi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: NotesUIDatabase.Close
« Antwort #1 am: 14.07.11 - 12:20:09 »
Ruedi, was Du da versuchst, wäre "security by obscurity". Solange der User Autor in der DB ist, kommt er auch an alle Dokumente dort ran, auf die er berechtigt ist. Das DatabaseScript lässt sich zudem einfachst umgehen.

Warum entziehst Du ihm nicht die Rechte und lässt die Sache aus der anderen DB mit einem NotesAgent.RunOnServer erledigen?

Bernhard

Offline Ruedi

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: NotesUIDatabase.Close
« Antwort #2 am: 14.07.11 - 12:37:18 »
Hallo Bernhard

Ich weiss, dass dies kein Sicherheitsfeature ist (und bin deshalb mit meiner Lösung auch nicht glücklich).

NotesAgent.RunOnServer tönt gut. Würde der Zugriff dabei mit der Server-ID erfolgen? Was wäre session.EffectiveUsername? Der Signer des Agenten? Oder der Server?

Ein Problem bei dieser Lösung ist, dass ich nicht über einen selbst erstellten Agenten auf die Daten zugreife, sondern über den "ez Connector" der Firma visol. Und da müsste ich mich zunächst erkundigen, ob agent.RunOnServer da auch in irgendwelcher Form machbar ist.

Ruedi

Hier übrigens noch die Bestätigung, dass NotesUIDatabase.Close und nested Framesets offenbar nicht zusammen passen:
https://www-304.ibm.com/support/docview.wss?uid=swg1LO48820

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz