Убедитесь, что существует допустимый токен сеанса, прежде чем заставлять службу WCF вызывать несколько браузеров с общим сеансом - PullRequest
1 голос
/ 08 декабря 2011

Использование WIF, WCF в клиенте Silverlight, обращающемся к внутренним службам WCF. При выходе из приложения используется метод SignOut модуля проверки подлинности федерации, который в свою очередь вызывает DeleteSessionTokenCookie модуля проверки подлинности сеанса (SAM) для локального выхода RP (проверяющей стороны). Выход в IP (выдающая сторона) впоследствии называется. Все это работает как ожидалось.

Я столкнулся со следующим несколькими сценариями браузера, связанными с общим сеансом, который приводит к проблеме «удаленный сервер возвратил ошибку не найдена». Если используется IE "New Session", это не проблема.

Шаги:

  1. Используйте ярлык IE, чтобы открыть экземпляр браузера 1, перейти к приложению и войти в систему.
  2. Используйте ярлык IE, чтобы открыть экземпляр браузера 2, перейти к приложению и войти в систему.
  3. Выйти из приложения в экземпляре браузера 2.
  4. Выполните любую операцию, которая требует связи с сервером. например Выйдите из экземпляра браузера приложения 1.

Результат: исключение «удаленный сервер возвратил ошибку не найдена»

Можно ли обнаружить, что токен WIF был удален до выполнения вызова WCF в экземпляре браузера 1, и уведомить об этом пользователя. Метод IdentityModelServiceAuthorizationManager.CheckAccessCore (OperationContext) используется для проверки доступа к службе (авторизации) до выполнения каких-либо вызовов службы WCF. Можно ли получить доступ и оценить информацию, связанную с маркерами сеанса, в это время? Или есть другой подход, который можно использовать?

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