Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako odhlásite autentifikáciu systému Windows v aplikácii ASP.NET MVC?

V ASP.NET MVC neexistuje jediný príkaz „Logout“ tlačidla, ktorý magicky spracováva odhlásenie autentifikácie systému Windows. Autentifikácia systému Windows sa rieši na operačnom systéme a na úrovni IIS, nie výlučne vo vašej aplikácii. Vaša aplikácia musí signalizovať prehliadač a IIS, aby ukončila autentifikovanú reláciu. Tu sú bežné prístupy:

1. Formy autentifikácie (najjednoduchšie, odporúčané, ak je to možné):

Ak máte vo svojom nastavení * akúkoľvek * flexibilitu, najjednoduchšie a najčistejšie riešenie je prepnúť na autentifikáciu formulárov . Autentifikácia systému Windows je nepružná a pevne spojená s správou používateľov servera. Autentifikácia formulárov vám umožňuje spravovať používateľské účty vo vašej aplikácii a poskytuje jednoduchý mechanizmus odhlásenia. Potom sa odhlási jednoduchá `Formsauthentication.signout ()` v akcii ovládača.

`` csharp

[Httppost]

verejná akcia Logoff ()

{

Formsauthentication.signout ();

return redirecttoAction („index“, „domov“); // presmerovanie na svoju domovskú stránku

}

`` `

2. Vynútenie novej požiadavky (autentifikácia systému Windows):

Ak * musíte * používať autentifikáciu systému Windows, musíte spustiť novú žiadosť, ktorá vynúti opätovnú autentifikáciu (alebo jej nedostatok). Neexistuje žiadny priamy príkaz „Odhlásenie“; V podstate ničíte cookie relácie:

* presmerovanie na špeciálnu adresu URL: Vytvorte akciu radiča, ktorá nevyžaduje overenie. Táto akcia nerobí nič okrem presmerovania. Dôležitou časťou je, že toto presmerovanie vymaže existujúci overovací cookie. Prehliadač pošle novú žiadosť a IIS uzná, že neexistuje žiadna platná relácia.

`` csharp

[Demontanonymous] // Toto je rozhodujúce! Umožňuje prístup bez overovania

verejná akcia Logoff ()

{

return presmerovanie ("/"); // alebo na akúkoľvek adresu URL, ktorá nevyžaduje overenie

}

`` `

* Clear cookies (JavaScript na strane klienta - menej spoľahlivý): Tento prístup je vo všeobecnosti menej preferovaný, pretože sa spolieha na akcie na strane klienta a nemusí vždy fungovať spoľahlivo v prehliadačoch:

`` `JavaScript

Document.cookie ="asp.net_sessionId =; expires =thu, 1. januára 1970 00:00:00 UTC; path =/;";

// potenciálne potrebujete ďalšie riadky na odstránenie ďalších overovacích súborov cookie špecifických pre vaše nastavenie.

window.location.href ="/logoff"; // presmerovanie na vašu akciu založenia

`` `

Dôležité úvahy o autentifikácii systému Windows:

* IIS nastavenia: Uistite sa, že nastavenia IIS vašej aplikácie sú správne nakonfigurované pre autentifikáciu systému Windows.

* Správa relácií: Autentifikácia systému Windows sa často spolieha na správu relácií servera (stav relácie IIS). Metóda presmerovania vyššie účinne ukončí reláciu tým, že vynúti novú žiadosť bez overovacieho súboru cookie.

* Viacnásobné súbory cookie: V závislosti od vášho nastavenia môže existovať niekoľko súborov cookie súvisiacich s autentifikáciou. Možno budete musieť tieto výslovne vyčistiť (hoci metóda presmerovania zvyčajne postačuje).

* kerberos: Ak je zapojený Kerberos (bežné v podnikových prostrediach), proces odhlásenia môže byť zložitejší, pretože vstupenky Kerberos majú svoj vlastný životný cyklus a správu.

Odporúčanie:

Vážne zvážte prechod na autentifikáciu formulárov, ak máte akúkoľvek kontrolu nad svojím projektom. Spravovať používateľské relácie a odhlásenie je oveľa jednoduchšie. Riešenie odhlásenia autentifikácie systému Windows je vo svojej podstate zložitejšie a menej spoľahlivejšie. Vyššie uvedené prístupy fungujú, ale spoliehajú sa na nepriame metódy ukončenia relácie Windows. Vždy dôkladne otestujte v rôznych prehliadačoch.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené