Windows Identity Foundation System.Xml.XmlException: неожиданный конец файла - PullRequest
3 голосов
/ 28 сентября 2011

У нас есть собственный STS на нашем веб-сайте, работающий в Windows Azure. STS - это ASP.NET 4.0, а сайт - MVC3. В последние несколько дней я начал видеть довольно много следующих исключений, которые отображаются в наших журналах диагностики:

System.Xml.XmlException: Unexpected end of file.
   at System.Xml.EncodingStreamWrapper.ProcessBuffer(Byte[] buffer, Int32 offset, Int32 count, Encoding encoding)
   at System.Xml.XmlUTF8TextReader.SetInput(Byte[] buffer, Int32 offset, Int32 count, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
   at System.Xml.XmlDictionaryReader.CreateTextReader(Byte[] buffer, Int32 offset, Int32 count, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
   at System.Xml.XmlDictionaryReader.CreateTextReader(Byte[] buffer, Int32 offset, Int32 count, XmlDictionaryReaderQuotas quotas)
   at Microsoft.IdentityModel.Web.SessionAuthenticationModule.GetKeyId(Byte[] sessionCookie)
   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 Ответ

7 голосов
/ 28 сентября 2011

Когда вы используете Wif, Wif преобразует информацию о пользователе в файл cookie Fed, чтобы пользователю не нужно было проходить аутентификацию снова и снова. Этот cookie-файл Fed, cookie-файл сеанса, предназначен для каждого запроса, интерпретируемого модулем аутентификации сеанса, который устанавливает пользователя для HttpContext и Thread.

Поскольку информация о пользователе может быть существенной, обычно этот файл cookie разбивается на более мелкие части.

В вашем случае SAM не может прочитать данные, представленные в файлах cookie.

Ошибка, которую вы видите, может быть результатом того, что браузер ограничивает количество / размер отправляемых файлов cookie.

Влияние на пользователя - неудачная аутентификация или 500 в зависимости от того, как обрабатывается эта ошибка, которую я не исследовал.

Я бы порекомендовал попытаться выяснить, сколько куки раздает ваш сайт. Я видел в некоторых сообщениях, что Opera и Safari могут иметь проблемы с этим:

http://social.msdn.microsoft.com/Forums/eu/Geneva/thread/dc1e178f-46ab-4567-88b8-1f2541744908

...