单击外部链接时,浏览器不会发送FormsAuthentication cookie

时间:2015-07-01 12:00:03

标签: asp.net cookies forms-authentication

我们注意到,对于我们网站的某些用户,他们遇到的问题是,如果他们从外部来源(特别是Outlook和MS Word)链接到网站后,他们就会以这样的方式到达网站: User.IsAuthenticated为false,即使它们仍在其他选项卡中登录。

经过数小时的诊断后,似乎是因为单击外部链接时有时不会发送FormsAuthentication cookie。如果我们在Fiddler中进行检查,我们会看到网站中点击链接的不同标题,而不是单击Word文档或电子邮件中链接的标题。 Cookie似乎没有任何问题(" /"作为路径,没有域名,以及未来的到期日期。)

以下是设置的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令牌。这个问题似乎不会受到哪个浏览器设置为默认设置的影响,并且在Chrome和Firefox中都会发生。

这是正常/预期的行为,还是有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

原来这是Microsoft Word,Outlook和其他MS Office产品的已知问题:&lt; sigh&gt;

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

摘要:Word会尝试打开URL本身(如果它是Office文档),但会重定向,因为它没有身份验证Cookie。由于Word中的错误,它会错误地尝试在操作系统的默认浏览器中打开重定向的URL而不是原始URL。如果你监控&#34;过程&#34;在Fiddler的专栏中,很容易看到链接文章发生的确切行为:

enter image description here