#c# #asp.net #asp.net-mvc #authorization #.net-4.5
Вопрос:
У меня есть старший ASP.NET Приложение MVC, работающее на платформе .NET Framework 4.5.2, которое использует проверку подлинности Windows (это интрасеть) для пользователей, а затем пользовательский принципал, который хранит данные пользователя (разрешения пользователя, некоторые другие метаданные, которые часто необходимы).
Мне нужно «кэшировать» эти данные и не перезагружать их при каждом запросе, потому что процесс их получения из нескольких источников является дорогостоящим и трудоемким.
Допустим, например, что достаточно перезаряжать их каждый час.
Каковы мои варианты правильного сохранения пользовательских данных (пользовательского участника)?
Как это делается сейчас, мы используем решение, которое мне не нравится, но я не могу придумать/найти лучшее.
- Мы реализуем
WindowsAuthentication_OnAuthenticate
вglobal.asax.cs
- если нет действительного файла cookie авторизации, мы пытаемся создать его с помощью:
- мы загружаем информацию о пользователе и создаем наш
CustomPrincipal
- сериализуйте его и сохраните в
FormAuthenticationTicket
- это затем шифруется и хранится в
HttpCookie
- мы загружаем информацию о пользователе и создаем наш
- если нет действительного файла cookie авторизации, мы пытаемся создать его с помощью:
- Затем файл cookie извлекается при реализации
Application_PostAuthenticateRequest
вglobal.asax.cs
- принципал десериализуется и устанавливается в качестве принципала в
HttpContext.Current.User
случае наличия файла cookie
- принципал десериализуется и устанавливается в качестве принципала в
Я попытался погуглить, но я не знаю, как правильно спросить, и не могу получить результаты, которые я ищу. Любая информация о предпочтительных способах решения этой проблемы приветствуется.