У нас проблемы с Safari (и Opera), и из того, что я прочитал, файлы cookie FedAuth слишком велики.
Существует "аккуратный трюк", чтобы исправить это:
«WIF RTM добавил свойство в SessionAuthenticationModule, IsSessionMode. При переключении на true IsSessionMode обеспечивает сохранение SessionSecurityToken в кэше на протяжении всей продолжительности сеанса и создание файла cookie, который содержит только идентификатор сеанса, а не содержание самой сессии. "
У меня есть этот код в global.asax:
void WSFederationAuthenticationModule_SessionSecurityTokenCreated(object sender, Microsoft.IdentityModel.Web.SessionSecurityTokenCreatedEventArgs e)
{
FederatedAuthentication.SessionAuthenticationModule.IsSessionMode = true;
}
Проблема проста: «FederatedAuthentication.SessionAuthenticationModule.IsSessionMode = true» никогда не запускается, я понятия не имею, почему. Вы??
Или вы знаете, как использовать «PassiveSignInControl», чтобы установить IsSessionMode в true?
http://social.msdn.microsoft.com/Forums/en/Geneva/thread/ea00ec3f-ebdf-427c-929f-d4a196650552
http://blogs.msdn.com/b/vbertocci/archive/2010/05/26/your-fedauth-cookies-on-a-diet-issessionmode-true.aspx
Из книги «Программирование Windows® Identity Foundation»:
«Интересным свойством SAM является IsSessionMode. Когда установлено значение true, IsSessionMode имеет
эффект хранения основной части сеанса в кэше токенов на стороне сервера вместо записи
все в печенье. Сам файл cookie будет содержать небольшой идентификатор контекста, который
будет использоваться для получения сеанса на сервере. К сожалению, в этой версии 92 Part II Windows Identity Foundation для разработчиков удостоверений
В продукте нет способа установить IsSessionMode из файла конфигурации. Вы можете установить его через
свойство PassiveSignInControl или в файле global.asax следующим образом (тот же код, что и выше) "