Я кеширую информацию о вошедшем в данный момент пользователе в сеансе. Эта информация лениво загружается всякий раз, когда используется свойство CurrentUser
в моем глобальном классе приложения. Это делается путем вызова GetUser () в моей пользовательской реализации MembershipProvider, которая либо загружает пользователя из сеанса, либо загружает пользователя из БД и выбрасывает объект пользователя в сеансе.
Как мне справиться с этим сценарием?
- Пользователь входит в систему.
- Администратор удаляет пользователя (или деактивирует ... точка
они не могут войти в систему больше).
- Сессия пользователя истекает.
- Пользователь переходит на страницу или делает запрос, или что-то еще.
В настоящее время, если происходит такой сценарий, NullReferenceExceptions генерируются повсеместно, потому что платформа ASP .NET вызывает GetUser (), который ничего не возвращает, потому что он не может найти пользователя в базе данных (и в сеансе нет ничего, потому что он срок действия).