Кэширование токенов безопасности WIF

У меня есть сайт, который является проверяющей стороной нашего пользовательского STS на основе WIF. Недавно мы внедрили кэш токена безопасности, как описано здесь:Azure / веб-ферма готова SecurityTokenCache, Основное отличие нашей реализации от описанной в этой ссылке заключается в том, что мы используем Azure AppFabric Caching в качестве резервного хранилища для долговременного кэша, а не для хранения таблиц. Это помогло нам избавиться от проблемы усечения токена в некоторых браузерах, но привело к появлению новой проблемы (мы видим проблему усечения в первую очередь на страницах, на которых есть файлы Google Analytics + файлы cookie для защиты от подделки в дополнение к файлу cookie fedauth). Теперь мы получаем следующее исключение несколько тысяч раз в день:

System.IdentityModel.Tokens.SecurityTokenException
ID4243: Could not create a SecurityToken. A token was not found in the token cache and no cookie was found in the context.

System.IdentityModel.Tokens.SecurityTokenException: ID4243: Could not create a       SecurityToken. A token was not found in the token cache and no cookie was found in the context.
   at Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(XmlReader reader, SecurityTokenResolver tokenResolver)
   at Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken(Byte[] token, SecurityTokenResolver tokenResolver)
   at Microsoft.IdentityModel.Web.SessionAuthenticationModule.ReadSessionTokenFromCookie(Byte[] sessionCookie)
   at Microsoft.IdentityModel.Web.SessionAuthenticationModule.TryReadSessionTokenFromCookie(SessionSecurityToken& sessionToken)
   at Microsoft.IdentityModel.Web.SessionAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs eventArgs)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Это исключение, похоже, происходит в цикле перенаправления, поэтому мы увидим сотни из них в течение 1-2 минут.

Мне не удалось найти какую-либо полезную информацию при исследовании исключения. Единственный самородок, который до сих пор сохраняет надежду, это кто-то упомянул, что он может быть связан с кэшированным объектом, срок действия которого истекает до сеанса.

Мы не смогли воспроизвести проблему внутренне и знаем только, что она существует из-за тысяч записей, заполняющих наши таблицы Elmah. Любая помощь или понимание будет очень цениться.

Мы выдвинули то, что, по нашему мнению, может помочь решить проблему (код ниже), но это не дало результата:

HttpContext.Current.Response.Cookies.Remove("FedAuth");
WSFederationAuthenticationModule authModule = FederatedAuthentication.WSFederationAuthenticationModule;
string signoutUrl = (WSFederationAuthenticationModule.GetFederationPassiveSignOutUrl(authModule.Issuer, authModule.Realm, null));
Response.Redirect(signoutUrl);

Ответы на вопрос(5)

Ваш ответ на вопрос