HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Felhasználói név és jelszó bekérése a weboldal megjelenítése előtt CGI/ISAPI alkalmazásban


Példaprogram letöltése

5187 bájt

Mint a cím is mutatja, ebben a cikkben egy olyan trükköt mutatunk be, amellyel a CGI/ISAPI alkalmazásunk által előállított weboldal megjelenítése előtt bekérjük a felhasználó nevét, és a jelszavát. A weboldal csak akkor jelenik meg, ha ezek az adatok korrekten lettek megadva. A jelszó bekérése ablakot maga a böngésző fogja megjeleníteni, nekünk csak utasítani kell erre.

A példaprogram kipróbálásához szükség van egy WEB szerver alkalmazásra. Windows 2000 alatt erre tökéletesen megfelel az IIS (Internet Information Services).
A feladathoz először is kell egy CGI/ISAPI alkalmazás. A megfelelő WebAction akció OnAction eseményében ellenőrizzük, hogy megtörtént-e már a felhasználó azonosítása. Ezt az esemény Request paraméterének Authorization property-jéből tudhatjuk meg. Ez egy sztring típusú property; ami a felhasználó azonosítására szolgáló adatokat tartalmazza (pl. felhasználói név, jelszó) Base64 kódolással. Az eseményben ellenőrizzük, hogy ez a property tartalmaz-e adatot, vagy csak üres sztring. Ha üres sztring, akkor megjelenítjük a Hálózati jelszó megadása ablakot, amiben bekérjük a felhasználói nevet és a hozzá tartozó jelszót.
Ha a felhasználó nem a helyes nevet és/vagy jelszót adta meg, akkor a böngészőben a „Nincs felhatalmazása ennek a lapnak a megtekintésére” hibaüzenet jelenik meg.
Most nézzük, hogyan utasíthatjuk a böngészőt a jelszó bekérésére. Ehhez csupán annyit kell tennünk, hogy a Response paraméter StatusCode property-jében 401-et adunk meg:
Response.StatusCode := 401;
Fontos tudni, hogy az Authorization property értéke csak akkor nem lesz megadva, ha még nem jelentkeztünk be a hálózatba, vagy a megjelenítendő oldal egy másik IP címhez tartozik.
A Request paraméter Authorization property-jében megkapott kód Base64 kódolású, amit a Delphi 6-ban megjelent IdBase64Decoder komponenssel (Indy) tudunk visszafejteni a következő sorokkal:
    IdBase64Decoder1.Reset;
    IdBase64Decoder1.CodeString(Copy(Request.Authorization, 6, Length(Request.Authorization)-6));
    s:=IdBase64Decoder1.CompletedInput;

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 298. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |