2015-03-11 1 views
0

В настоящее время я создаю службы отдыха, которые аутентифицируют пользователя против контроллера домена kerberos. Поскольку выкачать KDC каждый раз, когда пользователь пытается выполнить какое-либо действие в системе, занимает много времени, у меня есть кеш, в котором я храню токен аутентификации со своим основным директором.Объекты Singleton и утилизация AppPool

В основном, мои услуги предлагают две схемы аутентификации: Kerberos и токен. Проблема заключается в том, что мой кеш-объект (областью действия как singleton в моем контейнере DI) теряется, когда пул приложений перерабатывается. Кроме того, даже если пул приложений не перерабатывается, такое поведение не позволяет мне распространять мои услуги на нескольких серверах.

Как я могу сохранить свой объект кеша через пулы приложений?

ответ

0

С помощью утилизации пула приложений вы по существу прекращаете приложение и начинаете его с нуля. Как и в любом стандартном приложении, существует несколько способов сохранения данных между экземплярами приложения:

1) Добавьте уровень аутентификации поверх KDC. Создайте другой сервис в другом пуле приложений, который можно вызвать из основного сервиса. Вы по-прежнему будете подвержены тем же проблемам, если новый пул приложений будет переработан, но условия для повторного использования должны быть специфичными для аутентификации пользователей и состояния сервера.

2) Сохраняйте объекты в собственной базе данных или в файловой системе. Если вы выполнили сериализацию своего объекта после аутентификации, вы можете сохранить объект в локальном хранилище, который может быть менее дорогим, чем доступ к контроллеру KDC.

 Смежные вопросы

  • Нет связанных вопросов^_^