Skip to content

Як зробити авторизацію в Asp.Net [C#]

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Завантаження...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


В ASP.NET авторизація може бути реалізована за допомогою різних методів, таких як авторизація на основі ролей, авторизація на основі політик і авторизація на основі вимог. Нижче наведено кроки з реалізації авторизації в ASP.NET:

  • Виберіть тип використовуваної авторизації: Як згадувалося раніше, існують різні типи методів авторизації. Виберіть той, який відповідає вашим потребам.
  • Налаштуйте авторизацію: Після того як ви вибрали техніку авторизації, вам необхідно налаштувати її у вашому додатку. В ASP.NET ви можете налаштувати авторизацію на різних рівнях, таких як рівень сторінки, рівень контролера або рівень дій.
  • Визначте ролі та політики: Якщо ви використовуєте авторизацію на основі ролей або політик, вам необхідно визначити ролі та політики у вашому додатку. Ви можете визначити ролі у файлі web.config або в базі даних. Політики визначаються за допомогою класу Policy в ASP.NET.
  • Використовуйте атрибут [Authorize]: В ASP.NET ви можете використовувати атрибут [Authorize] для застосування авторизації до контролерів або дій. Цей атрибут гарантує, що доступ до контролера або дії буде дозволено тільки авторизованим користувачам.
  • Використовуйте класи User і HttpContext: У своєму коді ви можете використовувати класи User і HttpContext для перевірки автентифікації користувача та отримання його ідентифікаційних даних.
  • Обробка несанкціонованого доступу: Коли користувач намагається отримати доступ до ресурсу без відповідної авторизації, ASP.NET викидає виняток. Ви можете обробити це виключення і перенаправити користувача на користувацьку сторінку помилки або вивести повідомлення про помилку.

Загалом, впровадження авторизації в ASP.NET потребує ретельного планування та налаштування. Після налаштування вона допоможе забезпечити доступ тільки авторизованих користувачів до необхідних їм ресурсів.

У цьому прикладі ми розглянемо як зробити авторизацію на основі Identity.

ASP.NET Core Identity. Додавання з нуля.

Проєкт із типом аутентифікації “Individual User Accounts” дає змогу автоматично додавати всі файли, необхідні для роботи з ASP.NET Core Identity. Однак, як правило, всі стандартні можливості потрібні рідко, більше того, часто виникає необхідність більш детально доопрацювати різні компоненти, з яких складається Identity. І насправді, ми можемо вибрати будь-який інший тип проєкту і вручну додати його і виправити функціональність ASP.NET Core Identity.

Отже, спочатку створимо проект ASP.NET Core за шаблоном ASP.NET Core Web App (Model-View-Controller), але без аутентифікації:

Спочатку додамо в папку Models новий клас User:

Клас User представляє користувача і успадковується від класу IdentityUser, переймаючи всі його властивості. Крім того, для прикладу тут додано властивість Year, яка представлятиме рік народження користувача. За бажання можна визначити будь-які інші властивості.

Для взаємодії з MS SQL Server через ASP.NET Core Identity додамо в проект через Nuget пакети:

Далі додамо в папку Models клас контексту даних ApplicationContext. Оскільки ми використовуємо Identity, то клас контексту даних буде успадковуватися не від DbContext, а від IdentityDbContext:

У нас є контекст і моделі, і тепер нам необхідна база даних, яка буде зберігати всі дані. Спочатку визначимо у файлі appsettings.json рядок підключення:

Далі нам треба змінити клас Program, щоб застосувати всі необхідні сервіси для роботи з Identity і базою даних:

Тепер система Identity під’єднана до проєкту, і ми можемо з нею працювати.

Реєстрація та створення користувачів в Identity

Продовжуємо працювати над проєктом, додамо в нього функціонал реєстрації користувачів. Користувачі в додатку представлені класом User, який успадковує безліч властивостей. Однак вам не потрібно встановлювати їх усі. Просто задайте ключові властивості, такі як логін і пароль.

Для цього краще скористатися допоміжною моделлю, яка встановить усі необхідні властивості. Отже, додамо в проєкт нову папку, яку назвемо ViewModels. Потім у цій папці визначимо новий клас RegisterViewModel, який представлятиме користувача, що реєструється:

Для роботи з обліковими записами користувачів додамо в папку Controllers новий контролер AccountController і визначимо в ньому метод для реєстрації користувачів:

Оскільки в класі Program було додано сервіси Identity, то тут у контролері через конструктор ми можемо їх отримати. У цьому випадку ми отримуємо сервіс з управління користувачами – UserManager і сервіс SignInManager, який дає змогу автентифікувати користувача і встановлювати або видаляти його куки.

Для подань цього контролера в каталозі Views визначимо підкаталог Account, в який додамо нове подання Register.cshtml. Це подання слугуватиме для реєстрації користувача:

Запустимо додаток і звернемося до дії реєстрації. Введемо якісь дані:

авторизация в asp.net core mvc

Після вдалої реєстрації нас переадресує на головну сторінку.

Шановні ентузіасти програмування на C#!

Ми розуміємо, що іноді ви можете зіткнутися з труднощами під час вирішення проблем під час роботи над своїми проектами на C#. Якщо у вас виникли проблеми, пов’язані з мовою програмування C#, ми готові вам допомогти!
https://dijix.com.ua/blog помощь
Ви можете зв’язатися з нами електронною поштою або зателефонувати нам по телефону. Наша команда досвідчених розробників C# буде рада допомогти вам із будь-якими питаннями чи проблемами, які у вас можуть виникнути. Ми прагнемо допомогти вам подолати будь-які перешкоди, з якими ви зіткнетеся на шляху освоєння C#.
Не соромтеся звертатися до нас за будь-якою допомогою або керівництвом. Ми завжди готові підтримати вас у ваших починаннях.

З найкращими побажаннями,
[Леонід/ Dijix Company]

info@dijix.com.ua
+380970601478

 

Авторизація користувачів в Identity

В ASP.NET Core авторизацією користувачів керують за допомогою фреймворка Identity, який забезпечує гнучку і просту у використанні систему для визначення і застосування політик управління доступом.

Для створення механізму авторизації користувачів у застосунку спочатку додамо в проєкт із минулої теми в папку ViewModels спеціальну модель LoginViewModel:

У минулій темі в нас уже було додано контролер AccountController. Тепер же додамо в нього такі три методи:

І тепер визначимо в проєкті в папці Views/Account подання Login.cshtml, через яке здійснюватиметься вхід у застосунок:

Для перевірки логіна, для простоти визначимо в поданні Index.cshtml контролера HomeController виведення імені користувача та посилання на вхід і реєстрацію:

Запустимо проєкт і виконаємо вхід у додаток. І після вдалої авторизації на головній сторінці побачимо своє ім’я та кнопку для виходу.

Поради щодо авторизації

  • Використовуйте авторизацію на основі ролей: Призначте користувачам ролі та авторизуйте доступ на основі цих ролей. Це поширений спосіб керування авторизацією у веб-додатках.
  • Використовуйте авторизацію на основі тверджень: Використовуйте твердження для вказівки додаткової інформації про користувача, окрім його ролі, такої як відділ, посада або інші атрибути. Твердження можна використовувати для створення тонкого контролю доступу.
  • Реалізуйте авторизацію на основі атрибутів: Використовуйте атрибути для застосування правил авторизації до дій або методів контролера. Цей підхід простий у реалізації та може спростити логіку авторизації.
  • Захистіть конфіденційні дані: Захищайте конфіденційні дані, як-от паролі та інші облікові дані, за допомогою шифрування та інших заходів безпеки.
  • Використовуйте найменші привілеї: Надавайте користувачам мінімальний обсяг доступу, необхідний для виконання їхніх завдань. Це допоможе запобігти несанкціонованому доступу та знизить ризик витоку даних.
  • Впроваджуйте аудит: Записуйте і відстежуйте дії користувачів, щоб виявити підозрілу поведінку і потенційні порушення безпеки.
  • Використовуйте двофакторну автентифікацію: Вимагайте від користувачів надання додаткових факторів автентифікації, наприклад, коду, надісланого на телефон або електронну пошту, для доступу до важливих ресурсів.
  • Регулярно переглядайте та оновлюйте правила авторизації: Постійно оновлюйте правила авторизації, щоб відобразити зміни в організації, застосунку або ризиках безпеки.

Ці поради допоможуть вам реалізувати ефективну авторизацію у ваших додатках C# і захистити дані та ресурси вашої організації.

Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є які-небудь коментарі або виправлення.

Так само вам може бути цікава попередня стаття – Поширені приклади регулярних виразів.


Ви хочете навчитися писати код мовою програмування C#?

Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.

Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:

  • Доступ до пройденого матеріалу
  • Тематичні статті
  • Бібліотека книг
  • Онлайн тестування
  • Спілкування в закритих групах

https://dijix.com.ua

Живи у своєму світі, програмуй у нашому.

Published inЯк зробити на C#?
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x