簡體   English   中英

IE10 User-Agent導致ASP.Net不發回Set-Cookie(IE10未設置cookie)

[英]IE10 User-Agent causes ASP.Net to not send back Set-Cookie (IE10 not setting cookies)

摘要

使用IE 10時,ASP.Net不會發回Set-Cookie標頭。例如,在使用表單身份驗證時,您無法使用IE10登錄到ASP.Net站點。

詳情

我們目前正在針對IE 10 [預覽2]測試我們的一個遺留Web應用程序。

當嘗試使用Forms身份驗證登錄時,如果用戶代理是IE 10,我們在響應中沒有獲得Set-Cookie標頭。我們嘗試使用空白.Net 2和.Net 4站點。

因為我們不能/不會相信它,我們甚至通過telnet手動運行了跟隨HTTP請求 - 在使用所有常用工具之后 - 並獲得相同的響應。

GET http://test.ourdomain.co.uk/ HTTP/1.1
Accept: */*
Host: test.ourdomain.co.uk
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Content-Length: 0

上述HTTP請求在響應中不返回Set-Cookie 然而,如果我們只是將User-Agent更改為Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0)它就可以了!

其他人可以復制這個嗎? 除了影響非標准URL模式的問題之外,我找不到IE10 cookie的任何已知問題。

修復

devio發布原始答案后,通過解決方法, nullptr確認現在有一個修補程序

http://support.microsoft.com/kb/2600088

我已經將修補程序提升為主要問題,因為它對於將來的參考只是更方便,但請對所提到的用戶進行投票。

問題在於一些IIS實例認為IE10是一個無cookie的瀏覽器(即無法支持cookie)。 在我們的問題情況下,服務器正在設置身份驗證cookie並將其發送回瀏覽器,但隨后忽略了后續請求中的cookie。

解決方案是修補瀏覽器功能,以便它知道IE10可以執行cookie(在此頁面上的另一個答案中概述),或者更改默認行為以強制它使用cookie,即使它認為瀏覽器不能執行cookie。

我們剛剛將以下內容添加到web.config中的表單部分:

Cookie的= “UseCookies”

<authentication mode="Forms">
  <forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" />
</authentication>

MS Connect上找到此條目,該行為是一個公認的錯誤。

建議的解決方法(從條目中):

==解決方法==

在此期間為了使其工作並避免將來出現類似問題,我使用了一個文件〜\\ App_Browsers \\ BrowserFile.browser,其中包含以下內容:

<browsers>
<browser refID="Default">
<capabilities><!-- To avoid wrong detections of e.g. IE10 -->
<capability name="cookies" value="true" />
<capability name="ecmascriptversion" value="3.0" />
</capabilities>
</browser>
</browsers>

有一個針對此問題的修補程序[1]。

1) http://support.microsoft.com/kb/2600088
1) http://support.microsoft.com/kb/2600217 (替換以前的KB)

此外,[2]表明這將在2012年1月發布Windows Update。

2) http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

謝謝你的幫助。 它沒有用。

  1. 我將文件從站點復制到C:\\WINDOWS\\microsoft.net\\Framework\\v2.0.50727\\CONFIG\\Browsers

  2. 在命令提示符下運行C:\\WINDOWS\\microsoft.net\\Framework\\v2.0.50727>aspnet_regbrowsers.exe -i

  3. 重新啟動IIS。

  4. 測試了網站,它沒有任何錯誤。

再次感謝你的反饋

nullptr答案的更新。

我今天嘗試下載Microsoft KB2600088。 通過電子郵件收到鏈接后,我點擊它然后它會引導我顯示它已不再可用的頁面。

試試這個: http//support.microsoft.com/kb/2600217

該鏈接是KB2600088和KB2628838的替代品。

MIcrosoft .Net Framework 4.5現已上市。

安裝了每個人都提到的各種補丁,無論出於何種原因,問題都沒有得到解決。

安裝了.NET Framework 4.5 Full,問題就消失了。

您不必將任何項目更新為目標4.5。 只需將其安裝在服務器上即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM