Попытка понять время жизни объекта AuthorizationContext - PullRequest
3 голосов
/ 31 августа 2009

У меня есть простая настройка авторизации, которая проверяет определенные настроенные роли активного каталога в настраиваемой политике авторизации (IAuthorizationPolicy) и добавляет утверждения, если эти роли принадлежат. Кроме того, у меня есть подкласс ServiceAuthorizationManager, который переопределяет CheckAccessCore. Он проверяет владение некоторыми утверждениями, которые были добавлены при оценке политики пользовательской авторизации, чтобы подтвердить или отклонить входящее сообщение.

Итак, настройка этих компонентов в моем сервисе работает нормально - мой вопрос заключается в том, когда они вызываются / время жизни объектов, связанных с ними. Мой подкласс ServiceAuthorizationManager вызывается для каждого звонка в службу - это то, что я ожидал. Тем не менее, моя пользовательская политика авторизации также вызывается при каждом обращении к службе, что я не ожидал. Я вижу, что при каждом вызове службы генерируется новый объект AuthorizationContext.

Я думаю, что мои ожидания основывались на следующем: AuthorizationContext будет создан после того, как произойдет аутентификация - и это не будет происходить каждый раз, когда служба вызывается, потому что клиент подключается к NetTcpBinding, к одному и тому же прокси-серверу с каждым вызовом (и я подумал, что на транспортном сервере используется один и тот же открытый сокет ), используя транспортную безопасность с учетными данными Windows, с экземпляром сеанса службы.

Итак, я ожидал, что в целом AuthorizationContext будет сгенерирован только при создании нового сеанса или когда срок действия старого объекта AuthorizationContext истечет в соответствии с его свойством ExpirationTime (не при каждом вызове службы).

Итак, если кто-то может сказать мне, какова ситуация на протяжении всего времени существования объекта AuthorizationContext - или, возможно, сказать мне, как изменить службу, чтобы она работала так, как я ожидал, я был бы очень признателен .

Для контекста - если это имеет какое-то значение - я все еще использую библиотеки 3.0 CLR.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...