2015-07-01 4 views
0

Мы заметили, что для некоторых пользователей нашего веб-сайта у них есть проблема, если они следуют за ссылками на веб-сайт из внешнего источника (в частности, Outlook и MS Word), который они приходят на веб-сайте таким образом, что User.IsAuthenticated является ложным, хотя они все еще вошли в систему на других вкладках.FormsAuthentication cookie не отправляется браузером при нажатии внешних ссылок.

После нескольких часов диагностики, похоже, потому, что cookie FormsAuthentication не отправляется иногда, когда нажимается внешняя ссылка. Если мы исследуем в Fiddler, мы видим разные заголовки для ссылок, которые были нажаты на веб-сайте, в сравнении с заголовками, которые являются результатом нажатия ссылки в документе Word или электронной почте. В файле cookie нет ничего плохого (есть «/» как путь, ни один домен и дата окончания срока действия).

Вот печенье будет множество:

Set-Cookie: DRYXADMINAUTH2014=<hexdata>; expires=Wed, 01-Jul-2015 23:30:37 GMT; path=/

Вот запрос, отправленный из внутренней ссылки:

GET http://domain.com/searchresults/media/?sk=creative HTTP/1.1 
Host: domain.com  
Cookie: Diary_SessionID=r4krwqqhaoqvt1q0vcdzj5md; DRYXADMINAUTH2014=<hexdata>; 

Вот запрос, отправленный из внешней ссылки (Word):

GET http://domain.com/searchresults/media/?sk=creative HTTP/1.1 
Host: domain.com 
Cookie: Diary_SessionID=cpnriieepi4rzdbjtenfpvdb 

Обратите внимание, что .NET FormsAuthentication t oken отсутствует во втором запросе. Кажется, что проблема не влияет на то, какой браузер установлен по умолчанию и происходит как в Chrome, так и в Firefox.

Это нормальное/ожидаемое поведение, или есть способ, которым мы можем это исправить?

ответ

0

Оказывается, это известная проблема с Microsoft Word, Outlook и других продуктов MS Office: < вздохнув >

См: Why are cookies unrecognized when a link is clicked from an external source (i.e. Excel, Word, etc...)

Резюме: Word пытается открыть сам URL (в случае, если это ведомство документ), но перенаправляется, поскольку он не имеет cookie аутентификации. Из-за ошибки в Word, он неправильно пытается открыть перенаправленный URL-адрес в браузере по умолчанию ОС вместо исходного URL-адреса. Если вы отслеживаете колонку «процесс» в Fiddler, то легко увидеть точное поведение связанного товара:

enter image description here