Задать вопрос
cjdmitri
@cjdmitri
Программист любитель

ASP .Net MVC своя система авторизации без Identity?

Насколько безопасно и вообще можно ли использовать вместо замудренной ASP.NET Identity вот такой подход:
При успешной регистрации, данные пользователя сохраняются не только в БД но и в статичном классе. Если войти/зарегистрировать не удалось, то ApplicationUser остается null
public static class AppUser
    {
        /// <summary>
        /// Информация о текущем пользователе
        /// </summary>
        public static Site1.Models.User ApplicationUser = null;
    }

Соответственно пользователь остается авторизован на весь жизненный цикл приложения.
В модели содержатся все данные пользователя, которые можно легко получить в коде, не обращаясь каждый раз к базе данных.
Конечно же можно разработать различные методы защиты.
  • Вопрос задан
  • 1007 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Цикл жизни статичных переменных определяется циклом жизни приложения - это уже один минус. При перезагрузках вашего приложения нужно будет их восстанавливать. В случае хранения идентификационных данных в Session, либо в Db - этим моментом управляете Вы, определяя цикл жизни этих данных.

Статичные переменные доступны только на одном сервере. Если Ваше приложение хостится на нескольких машинах, то опредленные переменные на одном сервере не доступны с другого.

Статичные переменные доступны всем, т.е. являются глобальными в рамках App Domain. Думаю, это тоже о многом говорит. Придется делать костыли, боюсь представить какие, по доступу к ним; как-то параллелить клиентские запросы. В то время, как для Session есть Session concurrency

В целом, если говорить об механизме Session, то скажу, что это понятные и широко распостраненные практики хранения идентификационных данных. Думаю, для большинства прикладных задач это вполне применимый подход. Если требуется больше безопасности, то уже смотрим в сторону Server-side для хранения состояния, например, в БД.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы