MVC leveres med et ActionFilter For at opnå identitetsautentificering i Asp.NET WebForm tilbyder Microsoft os tre måder, hvoraf den mest anvendte er vores formularautentificering, som skal konfigureres med de tilsvarende oplysninger. For eksempel følgende konfigurationsinformation:
Det betyder, at vores login-side er Login.aspx, standardsiden efter vellykket login er Default.aspx, og vores brugerinformation benytter to metoder: verifikation og kryptering. Og det vigtigste er, at vi skal skrive autorisationsmetoden (autorisationen nedenfor skal skrives, ellers er det nytteløst kun at bruge formularautentificering og derefter sætte relevante attributter), nægte alle anonyme brugere, og kun indloggede brugere kan få adgang normalt. Derefter sætter vi login-knappen til at skrive brugernavnet ind i cookien (det vil sige, udføre FormsAuthentication.SetAuthCookie(name, false); Det er det. 0 I Asp.Net MVC kan vi også bruge Forms authentication, men hvis du gør det i WebForm, virker det ikke. For eksempel konfigurerer du informationen sådan her:
Du opretter et login i din Login.aspx for at aktivere Login-login i AccountControlleren for at logge ind, hvor login-koden er:
Efter at have gjort dette, vil du opdage, at din Logon ikke bliver udført. Hvad er grunden? Hvorfor virker den samme indstilling ikke i MVC? Årsagen er, at mekanismen er anderledes, fordi du opretter en autorisationsmetode, der gør Logon utilgængelig. Så hvordan gør vi det? Faktisk har vi i Asp.Net MVC en bedre måde at gøre alt dette på, vi behøver ikke en autorisationsmetode, hvilket betyder, at vores konfigurationsinformation ser sådan ud:
Der er ikke behov for at specificere, at anonyme brugere ikke kan logge ind osv. Selvfølgelig vil du opdage, at det ikke er nok bare at gøre dette, men vi skal fortælle systemet, hvilke der skal logges ind for at få adgang. Du tænker måske, o()〈))o Åh, det er for besværligt. Det er ikke sådan, det er meget simpelt, vi skal bare markere [Autoriser] på den handling, der skal autentificeres. For eksempel har jeg to sider i Home-mappen, Index og Home, og jeg vil have, at Index autentificeres for adgang, men Home gør ikke, så jeg behøver kun at give Index Action-tagget [Autoriser], altså:
Dette gør det muligt at tilgå Index efter login, mens Home ikke behøver at være logget ind. Hvis du skal godkende roller, kan du angive rollen, når du markerer Autoriser (f.eks. [Autorisere(Rolle=Administratorer)]), men du skal bruge medlemskabsmekanismen fra Microsoft, fordi din rolle ikke kan eksistere uden grund, men findes i den tilsvarende database, som jeg nævnte i en anden blog. Tilpas ActionFilteret Nogle gange kan du måske ikke opfylde denne type autentificering, eller hvis du føler, at du ikke er fleksibel nok, er det ligegyldigt, Asp.Net MVC tillader dig at tilpasse din ActionFilter. For eksempel tilpasser jeg nu autentificeringen:
Hvis brugerstyring er nødvendig, vil jeg definere de rollerelaterede filtre:
Faktisk vil du opdage, at de to ovenstående attributter er blevet løst af MVC's indbyggede autoriserede, og her fortæller vi dig hovedsageligt, at du kan udvide den, hvis nødvendigt. Nå, det var det for i dag! Kildekode-download: FormFormsAuthenticationMvc
|