Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 27998|Відповідь: 3

[Джерело] Asp.Net автентифікації та авторизації в MVC

[Копіювати посилання]
Опубліковано 16.03.2017 13:47:34 | | |

MVC постачається з ActionFilter
Щоб досягти автентифікації ідентичності Asp.NET WebForm, Microsoft пропонує нам три способи, найпоширенішим з яких є автентифікація Form, яку потрібно налаштувати з відповідною інформацією. Наприклад, наступна конфігураційна інформація:


Це означає, що наша сторінка входу — це Login.aspx, сторінка за замовчуванням після успішного входу — Default.aspx, а наша інформація користувача використовує два методи: верифікацію та шифрування. І найважливіше — нам потрібно написати метод авторизації (авторизація нижче має бути написана, інакше марно використовувати лише автентифікацію Forms і потім встановлювати відповідні атрибути), забороняти всім анонімним користувачам, і доступ можуть нормально мати лише ті, хто увійшов у систему. Після цього ми встановлюємо кнопку входу, щоб вводити ім'я користувача в cookie (тобто виконувати FormsAuthentication.SetAuthCookie(name, false); Ось і все.
0 У Asp.Net MVC ми також можемо використовувати автентифікацію Forms, але якщо робити це у WebForm, це не працюватиме. Наприклад, ви налаштовуєте інформацію так:


Ви налаштовуєте логін у своєму Login.aspx, щоб активувати Logon у AccountController для входу, де код входу:

Після цього ви побачите, що ваш Logon не буде виконаний. Яка причина? Чому той самий сетинг не працює в MVC? Причина в тому, що механізм інший, бо ви налаштовуєте метод авторизації, який робить Logon недоступним. То як ми це зробимо?
Насправді, у Asp.Net MVC у нас є кращий спосіб зробити все це, нам не потрібен метод авторизації, що означає, що наша конфігураційна інформація виглядає так:




Немає потреби уточнювати, що анонімні користувачі не можуть увійти тощо. Звісно, ви побачите, що цього недостатньо, але ми маємо повідомити систему, які з них потрібно увійти для доступу. Ви, мабуть, думаєте: o()〈))o О, це надто багато клопоту. Це не так, все дуже просто, нам просто потрібно позначити [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 09:40:22 |
Опубліковано 28.12.2017 14:58:56 |
Було б краще, якби були рендери
Опубліковано 07.02.2023 15:44:56 |

Було б краще, якби були рендери
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com