Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Odlogování pomocí js

Mám aplikaci napsanou v LANSE. Ta má standardní lansácký login. Ten nemám možnost změnit. Potřebuju udělat logout (ten žel standardní nemá). A to tak, aby prohlížeč zapomněl všecky vyplněné údaje a při pokusu o uživatele dostat se zpět např. pomocí tlačítka Back vyžadoval opětné zadání jména a hesla. Nejlépe v js, event. v PHP. Musí fungovat v IE 6+, ale i v dalších hlavních prohlížečících (FF, Opera...).

Pro IE 7 funguje tohle:

document.execCommand("ClearAuthenticationCache");

Bohužel ačkoli Microsoft tvrdí, že to má fungovat v IE 6, tak v 6 to nefunguje :.(, jen v 7.

Pro neIE prohlížeče jsem našla několik tipů, např.:

function createXMLObject() {
    try {
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        // code for IE
        else if (window.ActiveXObject) {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    } catch (e) {
        xmlhttp=false
    }
    return xmlhttp;
}

// Let's create an xmlhttp object
var xmlhttp = createXMLObject();
// Let's get the force page to logout for mozilla

xmlhttp.open("GET",".force_logout_offer_login_mozilla",true,"logout","logout");
// Let's send the request to the server
xmlhttp.send("");
// Let's abort the request
xmlhttp.abort();
// Let's redirect the user to the main webpage
window.location = "www.seznam.cz";

ale to mi nefunguje ani v FF, ani v Opeře :.(.

Nemáte někdo tip na kód, který by opravdu fungoval?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Vyskúšal som to ClearAuthenticationCache v IE6 a IE7 - funguje v obidvoch. Ten druhý spôsob som vysk…
los 10.03.2008 13:17
los
Ve stránce je tohle: <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control"…
Anicka 10.03.2008 15:08
Anicka
Aha, ale ClearAuthenticationCache sa používa pri HTTP Basic autentifikácii. Pri autentifikácii s po… nový
los 10.03.2008 15:49
los
Můžeš to event. vyzkoušet na www.bizdata.cz Kliknout na PZ-online Slavia vývoj (3. ikonka v prvním ř… nový
Anicka 10.03.2008 15:27
Anicka
To odhlásenie vyzerá, že funguje. Jediný problém je to, že pri stlačení Späť sa načíta tá stránka z… nový
los 10.03.2008 16:10
los
Bohužel to nepomohlo :.(. poslední
Anicka 14.03.2008 17:07
Anicka

Vyskúšal som to ClearAuthenticationCache v IE6 a IE7 - funguje v obidvoch. Ten druhý spôsob som vyskúšal vo FF a fungoval. Operu nemám k dispozícii a predpokladám, že tam to fungovať nebude.

Nevypisuje IE6 a FF nejakú inú chybu, kvôli ktorej to nejde (pretože by to tam malo fungovať)?

Ak testuješ, či to funguje alebo nie tak, že stlačíš tlačidlo Späť, tak to môže zobraziť predchádzajúcu stránku z keše. Ak nechceš stránky kešovať, tak musíš nastavovať správne HTTP hlavičky.

Ve stránce je tohle:

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="cache-control" content="no-store">
<meta http-equiv="cache-control" content="must-revalidate">
<meta http-equiv="cache-control" content="proxy-revalidate">

Přesto když se tam pokusím vrátit pomocí tlačítka Back, tak to s výjimkou IE 7 nevyžaduje opětovné zadání jména a hesla. Má tam být ještě něco dalšího?

Ve FF to funguje jen pokud zadám ručně na Vymazat vyrovnávací paměť a Vymazat relace s autentizací. Musím vymazat ručně oboje. Přitom to by měl dělat přece skript. Do chybové konzole se nenapíše nic.

Aha, ale ClearAuthenticationCache sa používa pri HTTP Basic autentifikácii.

Pri autentifikácii s použitím session ti nezostáva nič iné, len dať na server skript, ktorý tú session zruší (viď napr. session_destroy + komentáre).

Edit: Aha, teraz som si pozrel tú stránku, takže to nie je cez session. Ešte sa na to pozrem lepšie...

Zpět do poradny Odpovědět na původní otázku Nahoru