Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 27998|Antwoord: 3

[Bron] Asp.Net authenticatie en autorisatie in MVC

[Link kopiëren]
Geplaatst op 16-03-2017 13:47:34 | | |

MVC wordt geleverd met een ActionFilter
Om identiteitsauthenticatie in Asp.NET WebForm te bereiken, biedt Microsoft ons drie manieren, waarvan de meest gebruikte onze Formulierauthenticatie is, die geconfigureerd moet worden met de bijbehorende informatie. Bijvoorbeeld, de volgende configuratie-informatie:


Het betekent dat onze inlogpagina Login.aspx is, de standaardpagina na succesvolle inloggen Default.aspx, en onze gebruikersgegevens twee methoden hanteren: verificatie en encryptie. En het belangrijkste is dat we de autorisatiemethode moeten schrijven (de onderstaande autorisatie moet worden geschreven, anders is het nutteloos om alleen Formulierenauthenticatie te gebruiken en vervolgens relevante attributen in te stellen), alle anonieme gebruikers weigeren, en alleen ingelogde gebruikers normaal toegang krijgen. Daarna zetten we de inlogknop in om de gebruikersnaam in de cookie te schrijven (dat wil zeggen, FormsAuthentication.SetAuthCookie(name, false) uitvoeren; Dat is het.
0 In Asp.Net MVC kunnen we ook Forms authentication gebruiken, maar als je het in WebForm doet, werkt het niet. Bijvoorbeeld, je configureert de informatie als volgt:


Je stelt een login in je Login.aspx in om Logon in de AccountController te activeren om in te loggen, waar de Logon-code:

Na dit te hebben gedaan, zul je merken dat je Logon niet wordt uitgevoerd. Wat is de reden? Waarom werkt dezelfde instelling niet in MVC? De reden is dat het mechanisme anders is, omdat je een autorisatiemethode hebt ingesteld die Logon ontoegankelijk maakt. Dus hoe doen we dat?
In feite hebben we in Asp.Net MVC een betere manier om dit allemaal te doen, we hebben geen autorisatiemethode nodig, wat betekent dat onze configuratie-informatie er als volgt uitziet:




Er is geen noodzaak om te specificeren dat anonieme gebruikers niet kunnen inloggen, enzovoort. Natuurlijk zul je merken dat alleen dit niet genoeg is, maar we moeten het systeem vertellen welke apparaten ingelogd moeten worden om toegang te krijgen. Je denkt misschien, o()〈))o Oh, dat is te veel gedoe. Het is niet zo, het is heel simpel, we hoeven alleen [Autoriseren] te markeren op de actie die geauthenticeerd moet worden. Bijvoorbeeld, ik heb twee pagina's in de Home-map, Index en Home, en ik wil dat de Index geauthenticeerd wordt om toegang te krijgen, maar Home niet, dus hoef ik de Index alleen de Actie-tag [Autoriseren] te geven, dat wil zeggen:



Hierdoor kan Index worden geraadpleegd na het inloggen, terwijl Home niet hoeft te worden ingelogd. Als je rollen moet autoriseren, kun je de rol specificeren bij het markeren van Autoriseren (bijv. [Authorize(Role=Administrators)]), maar je moet het lidmaatschapsmechanisme gebruiken dat Microsoft biedt, omdat je rol niet voor niets kan bestaan, maar in de bijbehorende database, die ik in een andere blog noemde.
Pas de ActionFilter aan
Soms kun je niet aan dit soort authenticatie voldoen, of als je het gevoel hebt dat je niet flexibel genoeg bent, maakt het niet uit, Asp.Net MVC laat je je ActionFilter aanpassen. Bijvoorbeeld, ik pas nu authenticatie aan:


Als gebruikersbeheer nodig is, zal ik de rolgerelateerde filters definiëren:

Sterker nog, je zult merken dat bovenstaande twee attributen zijn opgelost door de ingebouwde Authorized van MVC, en hier vertellen we je vooral dat je deze kunt uitbreiden indien nodig.
Nou, dat was het voor vandaag! Broncode downloaden: FormsAuthenticationMvc





Vorig:Na de VPS-upgrade is het proces ongeveer 45 en loopt de CPU tot 100,
Volgend:Waarschuwing "Onopgeloste conflicten gevonden tussen verschillende versies van dezelfde afhankelijke assembly"
 Huisbaas| Geplaatst op 30-03-2017 09:40:22 |
Geplaatst op 28-12-2017 14:58:56 |
Het zou beter zijn als er renderings waren
Geplaatst op 07-02-2023 15:44:56 |

Het zou beter zijn als er renderings waren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com