Состояние сеанса WCF FederatedAuthentication связывается с ClaimsAuthorizationManager - PullRequest
2 голосов
/ 16 августа 2011

Контекст:

В Stack и Bing есть несколько потоков, в которых говорится о WCF и совместном использовании сеансов с ASP.NET . Никто не удовлетворяет мою проблему полностью. Итак, вот так:

У меня есть MVC сайт, на котором также есть несколько служб в RouteTable по пути "/ services". Это все работает действительно хорошо. Я могу вызывать действия контроллера и сервисные методы WCF как.

Я включил WIF и Федеративную аутентификацию с Службой контроля доступа Windows Azure (ACS) . Это тоже хорошо работает. Я могу войти через Facebook, Google и т. Д., И на моем сайте четко установлена ​​сессия. Я могу вызвать действия контроллера MVC и методы WCF. Внутри тела этих IPrincipal для текущего пользователя установлен мой текущий сеанс.

Теперь я хочу быть хорошим мальчиком и использовать пользовательский ClaimsAuthenticationManager и пользовательский ClaimsAuthorizationManager . Теперь возникает странная проблема:


Настройка:

Для этого сценария я вошел в систему. У меня есть сеанс. Я могу подтвердить это внутри тел методов моих методов контроллера MVC и моих методов обслуживания WCF. Это означает, что мы можем исключить из этого пользовательский ClaimsAuthenticationManager, поскольку он не затрагивается, когда у меня уже есть сеанс.

Это пользовательский ClaimsAuthorizationManager, который вызывает мою головную боль.

Когда я звоню на сайт MVC, я аутентифицируюсь с моим сеансом внутри метода ClaimsAuthorizationManager.CheckAccess И также внутри тела моих действий контроллера MVC. Пока все хорошо.


Проблема:

Когда я делаю вызов службам WCF, я НЕ аутентифицируюсь с моим сеансом внутри метода ClaimsAuthorizationManager.CheckAccess, но аутентифицируюсь (внезапно), когда я достигаю своей точки останова внутри метода сервиса WCF.

Это просто не имеет никакого смысла! Кажется, что мой сеанс не раздут внутри менеджера ClaimsAuthorization, но дальше по конвейеру, когда я нажимаю на свой собственный код WCF, сеанс на месте!

Как это может быть?

Приветствия

Magnus

1 Ответ

0 голосов
/ 24 августа 2011

Возможно, это проблема Stackoverflow, но когда я скопировал вашу конфигурацию в notepad ++, я увидел некоторые ненужные символы в значении типа AuthenticationManager: enter image description here.

Как и в остальной части вопроса, есть ли у вас элемент <clear /> перед элементами, которые вы здесь показываете?

...