usver Posted August 20, 2009 Report Share Posted August 20, 2009 Kā izlogot lietotāju, kad tas ir pārlūkā autentificējies ar NTLM? Ir izveidota Single Sign-On sistēma - domēnā ielogots lietotājs ar NTLM palīdzību tiek automātiski atpazīts PHP sistēmā. Ja viņš nav ielogojies Windows domēnā, tad izlec lodziņš un pieprasa ievadīt domēna jūzeri/paroli. Visa ielogošanās smuki notiek, taču - kā lietotāju izlogot? 0_o IE: document.execCommand('ClearAuthenticationCache'); // nestrādā. gan ar, gan bez 2. parametra IE: Tools -> Internet Options -> Content -> poga "Clear SSL State" // nestrādā Mozilla: about:logout?protocol=http&domain=* // nestrādā header("WWW-Authenticate: Basic realm=\"COMPANY\""); header("HTTP/1.0 401 Authorization Required"); // šis izmet lodziņu, taču, ja tajā neko neievada/atceļ - lietotāja sesija turpinās, itkā nekas nebūtu bijis esmu mērenā izmisumā, ka nestrādā labi itkā zināmās lietas - lūdzu, palīdziet. :> Quote Link to comment Share on other sites More sharing options...
usver Posted August 20, 2009 Author Report Share Posted August 20, 2009 Izveidots brutālais variants: <a onClick="if(confirm('Drošības nolūkos Jūsu pārlūks tiks aizvērts.\nVai aizvērt?')){ window.close(); }">[bildīte]</a> Quote Link to comment Share on other sites More sharing options...
endrju Posted August 20, 2009 Report Share Posted August 20, 2009 Šitā neder? header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: NTLM'); exit(0); P.S. Man ir sistēma, kurā esmu uztaisījis NTLM autorizēšanos un viss notiek, bet intereses pēc varētu salīdzināt to ielogošanās daļu. Man sanāk ņemt no $_SERVER['AUTH_USER'] un viss. Tu kā citādi esi realizējis? Quote Link to comment Share on other sites More sharing options...
endrju Posted August 20, 2009 Report Share Posted August 20, 2009 Un, starp citu, NTLM logout noteikti ir iespējams. Lietoju SharePoint un tur "Logout" nestrādā kā expected, bet "Change User" nostrādā tieši kā logout. Ja nesanāks ar to kodu, ko iedevu, paskatīšos headerus. Quote Link to comment Share on other sites More sharing options...
usver Posted August 20, 2009 Author Report Share Posted August 20, 2009 1) preved, endrju :) 2) aah, paldies, ka atgādināji - Sharepoint mums te ir pieejams, palūrēšu, kas notiek pie jūzeru maiņas. :) Quote Link to comment Share on other sites More sharing options...
endrju Posted August 20, 2009 Report Share Posted August 20, 2009 1) preved, endrju :) 2) aah, paldies, ka atgādināji - Sharepoint mums te ir pieejams, palūrēšu, kas notiek pie jūzeru maiņas. :) Nu pag, Tu manu kodu nepārbaudīji? Priekš kam tad rakstīju, hh. Un Tu tā arī par ielogošanos neatbildēji. Un ziņo kā veicas. Quote Link to comment Share on other sites More sharing options...
usver Posted August 20, 2009 Author Report Share Posted August 20, 2009 (edited) Kodu pārbaudīju - paldies, tas tiešām dara to, kas vajadzīgs. Padod vajadzīgo hederi un prasa ielogoties kā valīdam jūzerim. Un - kods ir balstīts uz to pašu $_SERVER['PHP_AUTH_USER']. Vai sanāks eleganta jūzera nomaiņa līdz ar sesiju, atbilstošu sistēmāi, to vēl nezinu. Kad varēšu priecīgi mētāt roķeles pa gaisu un spiegt nebalsī, tad arī atzīmēšos, kā sanāca :) Edited August 20, 2009 by usver Quote Link to comment Share on other sites More sharing options...
endrju Posted August 20, 2009 Report Share Posted August 20, 2009 Šitā neder? header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: NTLM'); exit(0); Pārbaudīju ko dara SharePoint. Izrādās, ka tieši to pašu. Būtu ņēmis uzreiz manu kodu, nevis pļurgājies. Quote Link to comment Share on other sites More sharing options...
endrju Posted August 20, 2009 Report Share Posted August 20, 2009 Un - kods ir balstīts uz to pašu $_SERVER['PHP_AUTH_USER']. Tad sanāk akli uzticēties headerim, vai ne? Respektīvi, no headeriem var dabūt domēnu/useri, bet ne paroli. (Vismaz man tā pašlaik ir). Quote Link to comment Share on other sites More sharing options...
usver Posted August 20, 2009 Author Report Share Posted August 20, 2009 aha, no hederiem var dabūt domēnu/jūzeri, taču par autentifikāciju parūpējas Apache modulis "mod_ntlm" un .htaccess ar "require valid-user". Tas, kāda ir jūzera parole, PHP aplikāciju neinteresē, ka tik ir ielogojies. Paldies, es no sākuma ieliku jau Tavu kodu, un tas strādā. pļurgāšanās izpalika ;> Pilnai laimei jāsaprogrammē vēl pārējā sistēma. Paldies, jū seivd mai dei ;) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.