Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 15478|Válasz: 0

[ASP.NET] FormsAuthentication alapú felhasználói és szerep hitelesítése

[Linket másol]
Közzétéve 2018. 07. 19. 17:31:14 | | |
Normál körülmények között, amikor hozzáférési jogkezelést végzünk, a felhasználó alapvető adatait a helyes bejelentkezés után elmentjük, és minden alkalommal, amikor a felhasználó a jövőben oldal- vagy felületadatokat kér, megkapjuk azokat

A beszélgetés, hogy megnézzük és összehasonlítsuk, be van jelentkezve, és hozzáférhet-e a jelenlegi oldalhoz.

       A Session elve, hogy a szerver oldalán egy SessionID-t generál, amely megfelel a tárolt felhasználói adatoknak, és a SessionID egy sütikben van, és a kliens minden kéréskor magával viszi ezt

Cookie esetén a szerver megtalálja a szerver oldalán tárolt adatokat a süti szekció azonosítója alapján.

       A FormsAuthentication szolgáltatást a Microsoft biztosítja az amerikai fejlesztők számára hitelesítéshez. Ezzel a hitelesítéssel tárolhatjuk a felhasználónevet és néhány felhasználói adatot sütikben,

Az alapvető identitás- és szerephitelesítés könnyen elérhető alapvető feltételek beállításával.

       A hatás az, hogy szerepalapú hozzáférés-vezérlést valósítunk meg a rendszer által biztosított Authorize használatával tagság nélkül.

1. Indíts jegyet

A felhasználó bejelentkezése után a felhasználó azonosítója és a hozzá tartozó szerep (több szerep esetén külön) eltárolódik a jegyben.

Titkosítsd a jegyet a FormsAuthentication.Encrypt segítségével.

Tárold a titkosított jegyet a Válasz süti (a js kliensnek nem kell elolvasnia ezt a sütit, ezért a legjobb, ha HttpOnly=True beállítást állítunk, hogy megakadályozzuk a böngészőtámadások sütik ellopását és hamisítását). Így legközelebb elolvashatod a Request cookie-ból.

Egy egyszerű bemutató a következő:


bool isPersistent, //hogy maradjon (szükség szerint állítva be, ha persistenciára állítva, akkor a süti Expires beállítását be kell állítani süti küldésekor

A FormsAuthenticationTicket hatodik paramétere tárolja a userData típus-sorozatot, ahol a jelenlegi felhasználó szerepazonosítója található, és ezt vesszővel választják el.

Amikor "test" felhasználónévvel jelentkezel be, egy napló süti jelenik meg a kliensen


2. Szerezzen be tanúsítványi információkat

Bejelentkezés után, a tartalomoldalon megszerezhetjük az uname adatait a jelenlegi kérés User.Identity.Name keresztül, vagy lefejthetjük a cookie-t a kérésben, hogy megszerezzük a jegyet, majd onnan megszerezzük az uname-t és a userdata-t (azaz a korábban tárolt szerepazonosító adatokat).


3. Valósítsd meg az engedély hozzáférési vezérlését annotációs attribútumok segítségével

Konfiguráld Enable Form Authentication and Role Management a web.config fájlban

Amikor annotációs tulajdonságokat adunk hozzá a Controller és Action rendszerekhez, honnan kapjuk a Role beállítást? Mivel nem használjuk a tagságalapú hitelesítést, egyedi RoleProvidert is fogunk létrehozni. A név CustomRoleProvider, amely a RoleProvider-től örökölt. Íme a saját CustomRoleProvider.cs fájlod létrehozása a Segítő mappában az MVCApp alatt.

A RoleProviderben sok absztrakt metódus van, és csak a GetRolesForUser metódust alkalmazzuk a felhasználói szerepek megszerzéséhez. A felhasználói szerep itt az adatbázisból lekérdezhető a megszerzett felhasználói azonosító alapján, illetve a munkafolyamatban tárolt vagy a cookie-ban tárolt azonosító alapján. Itt már elmentettem a szerepet a jegy userdata-jában, szóval vegyük ki a jegyből.

Ha szükséges, adj hozzá annotációs attribútumokat a validált Controllerhez vagy Művelethez, például ez az Akció csak 1, 2 vagy 3 RoleID esetén engedélyezi a hozzáférést, és a jelenlegi felhasználói RoleID (7, 1, 8), ami azt jelenti, hogy a felhasználónak joga van hozzáférni.

Ui.: 1. A jegy a süti lejárati idején tárolódik, és ha a böngésző be van zárva, hogy emlékezzen a jelenlegi jegyre, akkor a paraméterek beállíthatóak, amikor a FormsAuthenticationTicket megidézik.

2. A Role megszerzése közvetlenül az adatbázisból olvasható anélkül, hogy a jegy userData-jában tárolnák, és a userData más információkat is tárolhat.

3. Ha rugalmasan szeretnéd konfigurálni a Controller és az Action Allowed Access szerepeket, testreszabhatod az OnAuthorization metódust az AuthorizeAttribute felülbírálásban, ahol a metódus működik

      Olvasd el a jelenlegi oldalon engedélyezett szerepazonosítót, és ellenőrizd azt a jelenlegi felhasználó RoleID-je szerint. Így valósul meg a szerep rugalmas konfigurációja.

            4. A jegyben lévő információk végül a süti alatt vannak tárolva, és a biztonság továbbra is a te döntésedben van, személy szerint szerintem jobb a UserID-t és RoleID-t a munkamenetben tárolni.





Előző:Baidu Map: A pontaggregációs marker lag megoldásának megoldása
Következő:Technikai partnerek toborzása
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com