Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 27998|Svar: 3

[Källa] Asp.Net autentisering och auktorisation i MVC

[Kopiera länk]
Publicerad på 2017-03-16 13:47:34 | | |

MVC levereras med ett ActionFilter
För att uppnå identitetsautentisering i Asp.NET WebForm erbjuder Microsoft oss tre sätt, varav det vanligaste är vår formulärautentisering, som måste konfigureras med motsvarande information. Till exempel följande konfigurationsinformation:


Det betyder att vår inloggningssida är Login.aspx, standardsidan efter lyckad inloggning är Default.aspx, och vår användarinformation använder två metoder: verifiering och kryptering. Och det viktigaste är att vi måste skriva behörighetsmetoden (auktorisationen nedan måste skrivas, annars är det meningslöst att bara använda formulärautentisering och sedan sätta relevanta attribut), neka alla anonyma användare, och endast inloggade användare kan komma åt som vanligt. Efter det ställer vi in inloggningsknappen för att skriva användarnamnet i cookien (det vill säga köra FormsAuthentication.SetAuthCookie(name, false); Det är allt.
0 I Asp.Net MVC kan vi också använda formulärautentisering, men om du gör det i WebForm fungerar det inte. Till exempel konfigurerar du informationen så här:


Du sätter in en inloggning i din Login.aspx för att trigga Login-inloggning i AccountController, där inloggningskoden:

Efter att ha gjort detta kommer du att upptäcka att din inloggning inte kommer att köras. Vad är anledningen? Varför fungerar inte samma inställning i MVC? Anledningen är att mekanismen är annorlunda, eftersom du sätter upp en auktorisationsmetod som gör Logon otillgängligt. Så hur gör vi det?
Faktum är att vi i Asp.Net MVC har ett bättre sätt att göra allt detta, vi behöver ingen auktoriseringsmetod, vilket innebär att vår konfigurationsinformation ser ut så här:




Det finns inget behov av att specificera att anonyma användare inte kan logga in, etc. Självklart kommer du att upptäcka att det inte räcker att bara göra detta, men vi måste tala om för systemet vilka som behöver loggas in för att komma åt. Du kanske tänker, o()〈))o Åh, det är för mycket besvär. Det är inte så, det är väldigt enkelt, vi behöver bara markera [Auktorisera] på den handling som behöver autentiseras. Till exempel har jag två sidor i hemmappen, Index och Home, och jag vill att indexet ska autentiseras för åtkomst, men det gör inte Home, så jag behöver bara ge indexet åtgärdstaggen [Authorize], det vill säga:



Detta gör att Index kan nås efter inloggning, medan Home inte behöver vara inloggad. Om du behöver auktorisera roller kan du specificera rollen när du markerar Auktorisera (t.ex. [Authorize(Role=Administrators)]), men du måste använda medlemskapsmekanismen som Microsoft tillhandahåller, eftersom din roll inte kan existera gratis, utan finns i motsvarande databas, som jag nämnde i en annan blogg.
Anpassa ActionFilter
Ibland kan du inte uppfylla denna typ av autentisering, eller om du känner att du inte är tillräckligt flexibel spelar det ingen roll, Asp.Net MVC låter dig anpassa ditt ActionFilter. Till exempel anpassar jag nu autentiseringen:


Om användarhantering krävs kommer jag att definiera de rollrelaterade filtren:

Faktum är att du kommer att upptäcka att ovanstående två attribut faktiskt har lösts av MVC:s inbyggda auktoriserade, och här säger vi främst att du kan utöka det om det behövs.
Nåväl, det var allt för idag! Källkodsnedladdning: FormsAuthenticationMvc





Föregående:Efter VPS-uppgraderingen är processen cirka 45 och CPU:n körs upp till 100,
Nästa:Varning: "Olösta konflikter hittade mellan olika versioner av samma beroende assembly"
 Hyresvärd| Publicerad på 2017-03-30 09:40:22 |
Publicerad på 2017-12-28 14:58:56 |
Det vore bättre om det fanns renderingar
Publicerad på 2023-02-07 15:44:56 |

Det vore bättre om det fanns renderingar
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com