Az MVC ActionFilter-rel érkezik Az identitáshitelesítés eléréséhez Asp.NET WebFormban a Microsoft három lehetőséget kínál, amelyek közül a leggyakrabban a Form hitelesítés, amelyet a megfelelő információkkal kell konfigurálni. Például a következő konfigurációs információk:
Ez azt jelenti, hogy a bejelentkezési oldalunk Login.aspx, a sikeres bejelentkezés utáni alapértelmezett oldal Default.aspx, és a felhasználói adataink két módszert alkalmaznak: ellenőrzést és titkosítást. És a legfontosabb, hogy meg kell írnunk az engedélyezési módszert (az alábbi engedélyezést meg kell írni, különben használhatatlan csak Forms hitelesítést használni, majd a releváns attribútumokat beállítani), minden névtelen felhasználót meg kell taganunk, és csak a bejelentkezett felhasználók léphetnek hozzá normálisan. Ezután beállítjuk a bejelentkezési gombot, hogy a felhasználónevet írja be a cookie-ba (azaz végrehajtsuk a FormsAuthentication.SetAuthCookie(name, false) funkciót; Ennyi. 0 Asp.Net MVC-ben használhatjuk a Forms hitelesítést is, de ha WebFormban csinálod, az nem fog működni. Például így konfigurálod az információt:
Beállítasz egy bejelentkezést a Login.aspx-n, hogy a AccountControllerben bejelentkezzen a bejelentkezéshez, ahol a Bejelentkezés kódja:
Miután ezt megteszed, azt fogod tapasztalni, hogy a bejelentkezésed nem lesz végrehajtva. Mi az oka? Miért nem működik ugyanez a beállítás az MVC-ben? Ennek oka, hogy a mechanizmus más, mert beállítasz egy engedélyezési módszert, ami elérhetetlenné teszi a Logont. Szóval hogyan csináljuk? Valójában Asp.Net MVC-ben jobb módja van mindeznek, nincs szükség engedélyezési módszerre, ami azt jelenti, hogy a konfigurációs információink így néznek ki:
Nem kell megadni, hogy az anonim felhasználók nem tudnak bejelentkezni stb. Természetesen azt fogod tapasztalni, hogy ez nem elég, de meg kell mondanunk a rendszernek, melyiket kell bejelentkezni a hozzáféréshez. Lehet, hogy azt gondolod, o()〈))o Ó, ez túl nagy gond. Nem erről van szó, nagyon egyszerű, csak meg kell jelölnünk [Engedélyezés] jelzést arra a Műveletre, amit hitelesíteni kell. Például két oldal van a Home mappában, az Index és a Home, és szeretném, ha az Index hitelesítést kapna a hozzáféréshez, de a Home nem, így csak az Indexnek kell megadnom az Action címkét [Authorize], azaz:
Ez lehetővé teszi, hogy az Indexhez belépés után hozzáférjen, míg a Home-nak nem kell bejelentkeznie. Ha szerepeket kell engedélyezned, akkor megadhatod a szerepet, amikor Authorize jelöled (pl. [Authorize(Role=Administrators)]), de a Microsoft által biztosított tagsági mechanizmust kell használnod, mert a szereped nem létezhet semmiért, hanem a megfelelő adatbázisban található, amit egy másik blogban említettem. Testreszabni az ActionFilter Néha előfordulhat, hogy nem tudsz megfelelni ennek a fajta hitelesítésnek, vagy ha úgy érzed, nem vagy elég rugalmas, akkor nem számít, Asp.Net az MVC lehetővé teszi, hogy testreszabd az ActionFilteredet. Például most már testreszabom az autentifikációt:
Ha felhasználókezelésre van szükség, meghatározom a szerepkörhöz kapcsolódó szűrőket:
Valójában azt fogod tapasztalni, hogy a fenti két attribútumot az MVC beépített Authorized funkciója megoldotta, és itt főként azt mondjuk, hogy szükség esetén bővítheted. Na, ennyi volt már! Forráskód letöltés: FormFormsAuthenticationMvc
|