Следует ли мне избегать использования встроенного механизма идентификации ASP.NET? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать приложение, которое имеет возможность создавать учетные записи пользователей, которые имеют широкий диапазон разрешений.В настоящее время я использую встроенную систему идентификации ASP.NET Core, но я столкнулся с некоторыми проблемами, которых у меня не было, или я не нашел чистых решений, о которых мы расскажем позже.Это заставило меня задуматься о создании своего собственного механизма идентификации, который будет соответствовать моим потребностям.

Проблемы, с которыми я сталкиваюсь:

  • Я использую MySQL в качестве своегопровайдер базы данных и при создании таблиц базы данных мне было выдано следующее исключение "Указанный ключ был слишком длинным: максимальная длина ключа составляет 3072 байта" .Мне удалось решить эту проблему, переопределив метод OnModelCreating и вручную изменив значение HasMaxLength , используя следующий код

    modelBuilder.Entity (). Свойство (ul => ul.LoginProvider) .HasMaxLength (36);

    Это не красиво, но оно выполняет свою работу.

  • Я хочу, чтобы мои пользователи могли добавлять несколько писем и несколько телефонных номеров на свои учетные записи.Встроенное удостоверение ASP.NET Core создает столбец электронной почты и номер телефона в таблице пользователей.Я знаю, что могу предотвратить создание этих столбцов, но я действительно не верю, что это правильное решение.По сути, мне нужно иметь таблицу, связанную с таблицей пользователей, в которой будут храниться электронные письма пользователей, и таблицу для телефонных номеров по тому же шаблону.
  • Мое приложение сможет создавать динамические поля , а также будут иметь возможность предоставлять своим пользователям разрешения, относящиеся к этим полям (например, CanSee, CanEdit, CanDelete) .Встроенная система авторизации ролей не соответствует моим требованиям, и я видел много шума вокруг встроенной системы авторизации претензий.Я на самом деле читал, что реализация системы авторизации, которая довольно близка к тому, что мне нужно, очень сложна и очень сложна в обслуживании!

Мой вопрос, должен ли я использовать встроенный ASP.NetОсновная система идентификации для достижения моих целей, хотя я сталкиваюсь с такими проблемами?Существуют ли какие-либо решения моих проблем, о которых я не знаю, и которые облегчили бы мою жизнь при использовании базовой системы идентификации ASP.Net?Должен ли я создать свою собственную систему идентификации и, если да, насколько сложной и потенциально опасной будет такая система?

1 Ответ

0 голосов
/ 07 февраля 2019

Вы должны использовать ASP.NET Identity и настроить его.

Вы должны рассматривать претензии как разрешения.Претензии на их базе, авторизованные фильтры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...