Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 27998|Отговор: 3

[Източник] Asp.Net удостоверяване и авторизация в MVC

[Копирай линк]
Публикувано в 16.03.2017 г. 13:47:34 ч. | | |

MVC идва с ActionFilter
За да постигнем удостоверяване на идентичността Asp.NET WebForm, Microsoft ни предоставя три начина, най-често използваният от които е нашата Form автентикация, която трябва да бъде конфигурирана с съответната информация. Например, следната конфигурационна информация:


Това означава, че нашата страница за вход е Login.aspx, стандартната страница след успешен вход е Default.aspx, а нашата потребителска информация използва два метода: верификация и криптиране. И най-важното е, че трябва да напишем метода на авторизация (упълномощаването по-долу трябва да бъде написано, в противен случай е безполезно да използваме само Forms автентикация и след това да зададем съответните атрибути), да откажем на всички анонимни потребители и само влезли в акаунта могат да имат нормален достъп. След това задаваме бутона за вход да записва потребителското име в бисквитката (т.е. да изпълним FormsAuthentication.SetAuthCookie(name, false); Това е всичко.
0 В Asp.Net MVC можем да използваме и Forms authentication, но ако го правите в WebForm, няма да работи. Например, конфигурирате информацията по следния начин:


Настрояваш вход в Login.aspx, за да задействаш влизане в AccountController, където кодът за вход:

След това ще установите, че вашият логин няма да бъде изпълнен. Каква е причината? Защо същата настройка не работи в MVC? Причината е, че механизмът е различен, защото си създал метод за авторизация, който прави Logon недостъпен. И така, как да го направим?
Всъщност, в Asp.Net MVC имаме по-добър начин за всичко това, не ни трябва метод за авторизация, което означава, че нашата конфигурационна информация изглежда така:




Няма нужда да се уточнява, че анонимните потребители не могат да влизат и т.н. Разбира се, ще откриете, че само това не е достатъчно, но трябва да кажем на системата кои трябва да бъдат влезли, за да има достъп. Може би си мислиш, о()〈)о О, това е прекалено голяма работа. Не е така, много е просто, просто трябва да отбележим [Authorize] на действието, което трябва да бъде удостоверено. Например, имам две страници в папката Home, Index и Home, и искам Index да бъде удостоверен за достъп, но Home не го прави, така че трябва само да дам на Index таг Action [Authorize], тоест:



Това позволява достъп до Index след влизане, докато Home не е необходимо да се влиза. Ако трябва да упълномощавате ролите, можете да посочите ролята при маркиране Authorize (например [Authorize(Role=Administrators)]), но трябва да използвате механизма за членство, предоставен от Microsoft, защото вашата роля не може да съществува без причина, а съществува в съответната база данни, която споменах в друг блог.
Персонализирайте ActionFilter
Понякога може да не успеете да изпълните този вид автентикация, или ако смятате, че не сте достатъчно гъвкави, няма значение, Asp.Net MVC ви позволява персонализиране на ActionFilter. Например, сега персонализирам удостоверяването:


Ако е необходимо управление на потребителите, ще дефинирам филтрите, свързани с ролята:

Всъщност ще откриете, че горните два атрибута са решени от вградения Authorized на MVC, и тук основно ви казваме, че можете да го разширите, ако е необходимо.
Е, това е всичко за днес! Изтегляне на изходния код: FormFormsAuthenticationMvc





Предишен:След ъпгрейд на VPS, процесът е около 45, а процесорът работи до 100,
Следващ:Предупреждение: "Открити са неразрешени конфликти между различни версии на една и съща зависима асемблера"
 Хазяин| Публикувано в 30.03.2017 г. 9:40:22 ч. |
Публикувано в 28.12.2017 г. 14:58:56 ч. |
Щеше да е по-добре, ако имаше визуализации
Публикувано в 7.02.2023 г. 15:44:56 ч. |

Щеше да е по-добре, ако имаше визуализации
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com