2012-06-04 9 views
0

Во-первых, я должен был установить IsSessionMode = верно уменьшить размер Cookieполагающейся стороной в сценарии веб-фермы (IsSessionMode = истина)

Мне нужно, чтобы сбалансировать экземпляры 2 RP я сделал следующие шаги по 2 разные машины с RP случаях:

1) подписался на ServiceConfigurationCreated событие

private void WSFederationAuthenticationModule_ServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e) 
    { 
     X509Certificate2 certificate = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, ConfigHelper.FrontendCertificate); 

     var sessionTransforms = new List<CookieTransform>(new CookieTransform[] 
     { 
      new DeflateCookieTransform(), 
      new RsaEncryptionCookieTransform(certificate), 
      new RsaSignatureCookieTransform(certificate) 
     }); 

     SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly()); 
     e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler); 
    } 

2) Забирали сессию asp.net государственной службы

Проблема:

Когда я пытаюсь войти в STS я получаю бесконечное перенаправление с RP на STS

Я не могу понять, почему. Токен хранится в сеансе (IsSessionMode = true). Сессия разделяется между двумя разными хостами по государственной службе asp.net.

В чем проблема? Что я упустил?

Я думаю, что я не понимаю что-то важное.

ответ

0

Лучше всего предположить, что WIF просто не может установить сеанс на стороне RP, и пользователь приземляется на несанкционированной странице (возможно, на странице пользовательской ошибки?), Которая предлагает WIF перенаправить обратно в STS для аутентификации , и теперь вы зацикливаетесь.

Некоторые эксперименты можно попробовать:

  1. Выключайте IsSessionMode = False, и посмотреть, если проблема все еще происходит. Если это не так, вы знаете, что WIF задыхается при создании сеанса, и вы можете проверить, чтобы ваш RP успешно связывался с государственной службой ASP.NET, например.

  2. Установите Fiddler (http://fiddler2.com/fiddler2/), что является бесценным инструментом для отладки таких бесконечных перенаправлений. Соберите некоторые следы, посмотрите, что происходит. Вы также можете рассмотреть возможность размещения вашего веб-сайта RP web.config.