Karel | heslo v databazi |
| Dobry den, mam pozadavek na zaheslovani databaze s dokumenty. Pres ACL to resit nemuzu. Vytvoril jsem si skript, ktery se me po otevreni db zepta na heslo a pokud je uzivatel novy, vytvori ho a ulozi do databaze pro pristi overeni. Pokud heslo nesouhlasi, db se uzavre. Vse funguje super pokud ve vlastnostech db urcim Pri otevreni v klientovi programu Notes - Obnovit posledni pouzity pohled. Bohuzel potrebuji po spusteni db zobrazit ramce a potom skript nedokaze pri chybnem hesle db uzavrit, protoze vlastne jeste neni ramec nacten. Nevite nekdo jak na to? diky moc | Martin Humpolec | Re: heslo v databazi |
23.10.2008 10:13:23
ID: 2783.1
| A to se ani nebavíme o tom, že ten skript může někdo přerušit, nebo otevřít databázi do konkrétního pohledu, ....
Jakkoliv se mi to řešení nelíbí co zkusit do framu umístit formulář, kam uživatel zadá heslo a když bude správně tak se mu otevře další frame? Hlavně to pak chce to heslo kontrolovat i při otevření každého dokumentu, případně pohledu. | Alex Kozák | Re: heslo v databazi |
IT
25.10.2008 19:36:13
ID: 2783.2
| To Karel:
Souhlas s Martinem. Přestože píšete, že se chcete vyhnout ACL, doporučuji držet se bezpečnostních standardů, které Lotus Notes nabízí. (Tedy použít role, Readers, Editors). Získáte elegantně a poměrně jednoduše silné zabezpečení na úrovni dokumentů, které budete jinak horko těžko a komplikovaně dohánět.
Ušetřete si čas :-))
Alex K. | VZ | Koncepční problémy | 25.10.2008 20:41:11
ID: 2783.3
| 1. jestli je to v eventu NotesDatabase.PostOpen, tak ten vůbec nemusí proběhnout. Ten event neproběhne např. v případě, že někdo otevírá dokument přes doclink, který je v jiném dokumentu (často v jiné DB), takže se neotevírá DB, ale pouze dokument. Tzn. bylo by nutné zadávat a kontrolovat heslo při otevírání každého dokumentu. Nebo také ten event neproběhne, pokud je DB na ploše (nebo mezi bookmarky) vybraná a uživatel použije menu View\Go to ..., takže otevře přímo konkrétní pohled. 2. Z toho plyne další problém - jak poznat, odkud byl dokument otevřen (z pohledu v "zaheslované" DB nebo přes doclink?) a zda už bylo před tím heslo "k databázi" zadáno např. při otevření předchozího dokumentu či pohledu. Jak v takovém případě rozhodnout, kdy uživatel musí zadávat heslo, jak dlouho bude zadané heslo platit a kdy jeho platnost zrušit - tedy kdy proběhne "odhlášení z DB" a kde držet celou tu dobu informaci, že je uživatel "přihlášen". Protože ani event NotesDatabase.QueryClose nemusí vždy proběhnout (např. při zavírání LN klienta bez uzavření DB nebo pokud byl otevřen pohled přes View\Go to ...), takže se na něj při "odhlašování hesla" také nedá úplně spolehnout.
Zkrátka takové "zabezpečení" se dá poměrně snadno obejít přes pouhý doclink nebo otevřením pohledu v DB přes menu View\Goto .... A když se dá ověřování do nějaké Framu ve Framesetu, tak je zase problém, kde držet info, že user zadal heslo a jak dlouho má toto "přihlášení" platit, kdy a čím ho odhlásit a jak ošetřit výjimky, tedy přístup přes doclinky a otevření pohledu místo DB.
Zkrátka není nad standardní zabezpečení přes ACL. | Vlada Z | A já bych ještě doplnil | 26.10.2008 20:48:41
ID: 2783.4
| Podle toho co čtu, Karel asi nezná obrovskou výhodu Readers Field. Tím určí, kdo které dokumenty bude moci číst. A pak už může být srdečně jedno, zda si ji někdo záměrně, omylem nebo jinak otevře DB, stejně ty dokumenty neuvidí user neuvidí. |
|