Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 27998|Odpověď: 3

[Zdroj] Asp.Net autentizace a autorizace v MVC

[Kopírovat odkaz]
Zveřejněno 16.03.2017 13:47:34 | | |

MVC je dodáván s ActionFilter
Pro dosažení ověření identity Asp.NET ve WebFormu nám Microsoft poskytuje tři způsoby, z nichž nejčastěji používaný je ověřování formulářů, které je třeba nakonfigurovat s odpovídajícími informacemi. Například následující konfigurační informace:


To znamená, že naše přihlašovací stránka je Login.aspx, výchozí stránka po úspěšném přihlášení je Default.aspx a naše uživatelské informace používají dva způsoby: ověřování a šifrování. A nejdůležitější je, že musíme napsat autorizační metodu (autorizace níže musí být napsána, jinak je zbytečné používat pouze autentizaci přes formuláře a pak nastavovat relevantní atributy), zamítnout všechny anonymní uživatele a normálně přistupovat pouze přihlášení uživatelé. Poté jsme nastavili tlačítko přihlašování, aby do cookie zapsalo uživatelské jméno (tedy spustit FormsAuthentication.SetAuthCookie(name, false); To je vše.
0 V Asp.Net MVC můžeme také použít autentizaci přes Formuláře, ale pokud to uděláte ve WebFormu, nebude to fungovat. Například nakonfigurujete informace takto:


Nastavíte si přihlášení ve svém Login.aspx, které spustí přihlášení v AccountControlleru, kde je přihlašovací kód:

Po tomto zjištění zjistíte, že vaše přihlášení nebude vykonáno. Jaký je důvod? Proč stejné nastavení nefunguje v MVC? Důvodem je, že mechanismus je jiný, protože nastavíte autorizační metodu, která znemožní přihlášení přihlásit. Tak jak to uděláme?
Ve skutečnosti máme v Asp.Net MVC lepší způsob, jak to všechno udělat, nepotřebujeme autorizační metodu, což znamená, že naše konfigurační informace vypadají takto:




Není třeba specifikovat, že anonymní uživatelé se nemohou přihlásit atd. Samozřejmě zjistíte, že jen tohle nestačí, ale musíme systému říct, ke kterým je potřeba se přihlásit, abychom měli přístup. Možná si říkáte, o()〈))o To je moc práce. Není to tak, je to velmi jednoduché, stačí označit [Autorizovat] u akce, která je potřeba autentizovat. Například mám dvě stránky ve složce Domů, Index a Home, a chci, aby byl Index autentizován pro přístup, ale Home ne, takže Indexu stačí dát značku Akce [Autorizovat], tedy tak:



To umožňuje přístup k Indexu po přihlášení, zatímco Home nemusí být přihlášen. Pokud potřebujete autorizovat role, můžete při označování Authorize určit roli (např. [Authorize(Role=Administrators)]), ale musíte použít mechanismus členství poskytovaný Microsoftem, protože vaše role nemůže existovat zbytečně, ale existuje v příslušné databázi, o které jsem psal v jiném blogu.
Přizpůsobit ActionFilter
Někdy nemusíte být schopni splnit tento typ autentizace, nebo pokud máte pocit, že nejste dostatečně flexibilní, pak to nevadí, Asp.Net MVC vám umožňuje přizpůsobit si ActionFilter. Například nyní upravuji autentizaci:


Pokud je potřeba správa uživatelů, definuji filtry související s rolí:

Ve skutečnosti zjistíte, že výše uvedené dva atributy byly ve skutečnosti vyřešeny vestavěným autorizovaným režimem MVC, a zde vám hlavně říkáme, že je můžete v případě potřeby rozšířit.
Tak to je pro dnešek vše! Stažení zdrojového kódu: FormFormsAuthenticationMvc





Předchozí:Po upgradu VPS je proces asi 45 a CPU běží na 100,
Další:Varování: "Nalezeny nevyřešené konflikty mezi různými verzemi stejné závislé sestavy"
 Pronajímatel| Zveřejněno 30.03.2017 9:40:22 |
Zveřejněno 28.12.2017 14:58:56 |
Bylo by lepší, kdyby existovaly vizualizace
Zveřejněno 07.02.2023 15:44:56 |

Bylo by lepší, kdyby existovaly vizualizace
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com