Улучшение работы механизма аутентификации

Хотелось бы исправить недочет найденный при тестировании аутентификации через LDAP.

Описание недочета

  • Аутентификация в удаленных каталогах пользователь проверяется только при первой входе. При последующих попытках данные пользователя берутся из БД. Такая логика не совсем верна, так как пользователя могли удалить, а доступ у него все равно будет.

Примерная схема работы аутентификации:

Поверхностное описание

  • Метод AuthenticateAsync класса UserService получает логин и пароль и проверяет, что по такому паролю и логину есть пользователь. Если он ничего не нашел то возвращает null.
  • Метод AuthenticateInRemoteCatalogsAsync класса UserService получает логин и пароль. У всех пользователей каталога вызывает метод AuthenticateAsync и возвращает или IUser или null.
  • (Дальнейшее описание справедливо только для LdapUserCatalog) Метод AuthenticateAsync получает получает логин и пароль. Отправляет их для проверки на Ldap сервера и получает модель с необходимыми параметрами. После он обновляет данные пользователя или создает нового по данным пришедшим из Ldap.

Предложение

Поставлена задача https://jira.bars.group/browse/BARSUP-1999