Мы заметили, что для некоторых пользователей нашего веб-сайта у них есть проблема, если они следуют за ссылками на веб-сайт из внешнего источника (в частности, 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.
Это нормальное/ожидаемое поведение, или есть способ, которым мы можем это исправить?