Створення програми з Identity з нуля в MVC
При створенні проекту з типом автентифікації Individual User Accounts до нього за промовчанням додаються всі необхідні файли для роботи з AspNet Identity. Проте, зазвичай, рідко затребуваний весь стандартний функціонал. Якщо нам потрібна тільки реєстрація і логін, то інші файли і код, що не використовується, будуть просто висіти в проекті, або їх доведеться видаляти. Однак ми можемо і вибрати будь-який інший тип проекту і до нього вже додати вручну функціонал AspNet Identity, причому тільки той, який нам буде потрібен. Це дасть нам більший контроль над кодом, який розміщується в проекті.
Наприклад, створимо звичайний проект MVC з типом аутентифікації No Authentication.
Щоб додати до проекту AspNet Identity, нам треба додати наступні пакети NuGet:
Після додавання пакетів потрібно оновити файлweb.config: додамо рядок підключення:
Тепер додамо класи користувачів та контексту даних до папки Models. Клас контексту успадковуватиметься від IdentityDbContext:
У класі користувача крім успадкованих від IdentityUser властивостей також визначається і властивість Year для зберігання року народження користувача.
Оскільки вся робота з користувачами йде не безпосередньо, а через менеджер користувачів, то також додамо до папки Models відповідний клас:
Клас менеджера користувачів успадковується від UserManager. У конструкторі він приймає об'єкт сховища користувачів IUserStore. А статичний метод Create() створює екземпляр класу ApplicationUserManager за допомогою об'єкта контексту IOwinContext
Інтерфейс IAppBuilder визначає безліч методів, у разі нам достатньо трьох методів. Метод CreatePerOwinContext реєструє в OWIN менеджер користувачів ApplicationUserManager та клас контекстуApplicationContext.