ตัวแทนผู้ใช้ IE10 ทำให้ ASP.Net ไม่ส่งกลับ Set-Cookie (IE10 ไม่ได้ตั้งค่าคุกกี้)


91

สรุป

ASP.Net ไม่ส่งSet-Cookieส่วนหัวกลับเมื่อใช้ IE 10 หมายความว่าตัวอย่างเช่นคุณไม่สามารถล็อกอินเข้าสู่ไซต์ ASP.Net โดยใช้ IE10 เมื่อใช้ Forms Authentication เป็นต้น

รายละเอียด

ขณะนี้เรากำลังทดสอบเว็บแอปแบบเดิมกับ IE 10 [Preview 2]

เมื่อพยายามเข้าสู่ระบบโดยใช้ Forms Authentication เราจะไม่ได้รับSet-Cookieส่วนหัวในการตอบสนองหาก user-agent เป็นของ IE 10 เราได้ลองใช้กับไซต์. Net 2 และ. Net 4 ที่ว่างเปล่า

เนื่องจากเราไม่สามารถ / ไม่เชื่อเราจึงเรียกใช้คำขอ HTTP ติดตามด้วยตนเองผ่านtelnet- หลังจากใช้เครื่องมือปกติทั้งหมด - และได้รับการตอบสนองเดียวกัน

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)ก็ใช้ได้!

มีใครทำซ้ำได้อีกไหม ฉันไม่พบปัญหาใด ๆ ที่ทราบเกี่ยวกับคุกกี้ IE10 นอกจากปัญหาที่ส่งผลต่อรูปแบบ URL ที่ไม่ได้มาตรฐาน

โปรแกรมแก้ไขด่วน

หลังจากdevioโพสต์คำตอบเดิมกับการแก้ปัญหา, nullptrมีการยืนยันว่าตอนนี้จะมีโปรแกรมแก้ไขด่วนสำหรับเรื่องนี้

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

ฉันได้เลื่อนโปรแกรมแก้ไขด่วนเป็นคำถามหลักเนื่องจากเป็นเพียงแค่สะดวกสำหรับการอ้างอิงในอนาคต แต่โปรดโหวตผู้ใช้ที่กล่าวถึง


1
หมายเหตุ - ตัวอย่างข้างต้นมาจากการที่เราตั้งค่าคุกกี้ในคำขอรับ (โดยใช้ Response.SetCookie ())
isNaN1247

อีกวิธีที่เป็นไปได้ด้วยbrowserCaps : stackoverflow.com/a/13474958/1191905
Anton Skovorodko

เราใช้โปรแกรมแก้ไขด่วนกับ IIS หรือเครื่องไคลเอนต์หรือไม่?
Arcadian

@ magic-c0d3r นี่คือโปรแกรมแก้ไขด่วนสำหรับ. NET เองดังนั้นควรใช้กับเครื่องที่โฮสต์ IIS (เช่นเว็บเซิร์ฟเวอร์)
isNaN1247

3
โปรแกรมแก้ไขด่วนสำหรับ. NET 2.0 / 3.5 อาจเป็นที่สนใจ: support.microsoft.com/kb/2600100
fortboise

คำตอบ:


66

พบรายการนี้ใน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>

7
นั่นเป็นจุดบกพร่องเล็กน้อย - ฉันสงสัยเป็นอย่างยิ่งว่าไซต์ ASP.Net ทั้งหมดจะได้รับการแก้ไขเมื่อถึงเวลาที่ IE10 ออก
isNaN1247

2
ขอบคุณสำหรับสิ่งนี้. มันช่วยให้ฉันทำการทดสอบความเข้ากันได้กับแอพของเรา ในตอนแรกมันยากที่จะรู้ว่าเป็นแอปของเราหรือเบต้า แต่การมีวิธีแก้ปัญหาทำให้เรามีประสิทธิผล
MikeJ

สิ่งนี้ใช้ได้กับฉันกับ IE10 / Win8 แต่ไม่ใช่ IE10 / Win7 ที่แปลกมาก.
ScottE

1
ฉันรู้สึกประหลาดใจที่ได้ผลกับบางคนเพราะมันไม่เหมาะกับฉัน ดูคำตอบ cookieless = "UseCookies" ด้านล่างสำหรับโซลูชันทางเลือกที่ฉันคิดว่าจะพิสูจน์ได้ในอนาคตและมีประสิทธิภาพมากกว่า
ไมค์เนลสัน

71

ปัญหาเกิดจากอินสแตนซ์ IIS บางตัวที่คิดว่า IE10 เป็นเบราว์เซอร์ที่ไม่มีคุกกี้ (เช่นไม่สามารถรองรับคุกกี้ได้) ในกรณีปัญหาของเราเซิร์ฟเวอร์กำลังตั้งค่าคุกกี้การตรวจสอบสิทธิ์และส่งกลับไปยังเบราว์เซอร์ แต่จากนั้นก็เพิกเฉยต่อคุกกี้ในคำขอที่ตามมา

วิธีแก้ปัญหาคือการแก้ไขความสามารถของเบราว์เซอร์เพื่อให้รู้ว่า IE10 สามารถทำคุกกี้ได้ (ระบุไว้ในคำตอบอื่นในหน้านี้) หรือเปลี่ยนพฤติกรรมเริ่มต้นเพื่อบังคับให้ใช้คุกกี้แม้ว่าเบราว์เซอร์จะไม่สามารถทำคุกกี้ได้ก็ตาม

เราเพิ่งเพิ่มสิ่งต่อไปนี้ในส่วนแบบฟอร์มของเราใน web.config:

ไม่ใช้คุกกี้ = "UseCookies"

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

3
ที่แก้ไขปัญหาของเรากับ IE10
Oleg Yevteyev

1
หลังจากลองใช้วิธีแก้ไขปัญหาอื่น ๆ แล้วและโปรแกรมแก้ไขด่วนปฏิเสธที่จะติดตั้งโดยแจ้งว่าไม่เข้ากันได้กับเซิร์ฟเวอร์ของเราฉันได้ลองทำเช่นนี้ เป็นสิ่งเดียวที่แก้ไขปัญหาให้เราได้
Brian Surowiec

สิ่งที่ฉันต้องทำคือปรับแต่ง Web.config เพื่อดูผลลัพธ์ทันที Bravo
tuespetre

ฉันคิดว่านี่เป็นคำตอบที่ถูกต้อง คุกกี้ถูกตั้งค่าเพื่อให้ทุกอย่างดูดีในมือเล่นซอและ ASP.NET ก็สามารถอ่านกลับได้อย่างดีเยี่ยม (เมื่อฉันตั้งค่าหน้าทดสอบ) แต่ Forms Auth ไม่สนใจ นี่เป็นข้อ จำกัด ที่ร้ายแรงของ Forms Auth แต่การแก้ไขของคุณทำให้ใช้งานได้อย่างที่ควรจะเป็น!
ไมค์เนลสัน

1
นี่เป็นวิธีแก้ปัญหาที่ดีกว่าและสามารถรักษาได้จากการแก้ไข IIS
generalnetworkerror

33

มีโปรแกรมแก้ไขด่วนสำหรับปัญหานี้ [1]

1) http://support.microsoft.com/kb/2600088
1) http://support.microsoft.com/kb/2600217 (แทนที่ KB ก่อนหน้า)

นอกจากนี้ [2] ยังชี้ให้เห็นว่าสิ่งนี้จะเข้าสู่ Windows Update ในเดือนมกราคมของปี 2012

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


3
ยอดเยี่ยมขอบคุณสำหรับสิ่งนี้ - ฉันได้เลื่อนลิงก์ไปยังเนื้อหาหลักของคำถามเพื่อใช้อ้างอิงในอนาคต
isNaN1247

2
ยืนยัน. ตอนนี้ยังเป็นบั๊ก (08/2012) ฉันจะลองโปรแกรมแก้ไขด่วน
Eric Nguyen

12
ยังคงเป็นข้อผิดพลาด 04/2013 - wtf?
Scott Selby

เรากำลังแก้ไขปัญหานี้แม้ว่าเราจะอัปเดต KB Hotfix แล้วก็ตาม ฉันยังเพิ่มไฟล์เบราว์เซอร์ในเว็บ csproj ดูเหมือนจะไม่ช่วย สิ่งที่ช่วยได้คือเราเพิ่ม "ไซต์" ลงในกล่องโต้ตอบไซต์ที่เชื่อถือได้ ตอนนี้เรากำลังเปลี่ยนเส้นทางออกจาก IFrame จากแอป Marketplace ด้วยการลงชื่อเพียงครั้งเดียว ฉันสมมติว่ามีวิธีที่รุกรานน้อยกว่าในการจัดการกับการเปลี่ยนเส้นทางนี้ แต่ดูเหมือนว่าเอกสารจะมีข้อ จำกัด ในเรื่องนี้
Paul Shriner

3

ขอบคุณสำหรับความช่วยเหลือ มันใช้งานได้ไม่

  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. ทดสอบไซต์และใช้งานได้โดยไม่มีข้อผิดพลาดใด ๆ

ขอบคุณอีกครั้งสำหรับฟีดแบ็ก


2

การอัปเดตสำหรับคำตอบ nullptr

วันนี้ฉันพยายามดาวน์โหลด Microsoft KB2600088 หลังจากได้รับลิงค์ทางอีเมลฉันก็คลิกที่ลิงค์จากนั้นก็นำไปสู่หน้าที่แจ้งว่าไม่สามารถใช้ได้อีกต่อไป

ลองสิ่งนี้: http://support.microsoft.com/kb/2600217

ลิงก์ดังกล่าวเป็นการแทนที่สำหรับ KB2600088 และ KB2628838

นอกจากนี้ MIcrosoft .Net Framework 4.5 ก็พร้อมใช้งานแล้ว


ขอบคุณสำหรับการโพสต์การอัปเดตนี้ ฉันประสบปัญหากับลิงก์นี้support.microsoft.com/kb/2600088ส่วนใหญ่เป็นเพราะ IE บนเซิร์ฟเวอร์ของฉันแสดงหน้าเว็บไม่ถูกต้อง การอัปเดตของคุณช่วยฉันได้มาก
Daniel Hollinrake

0

ติดตั้งแพตช์ต่างๆที่ทุกคนกล่าวถึงและไม่ว่าด้วยเหตุผลใดปัญหาก็ไม่ได้รับการแก้ไข

ติดตั้ง. NET Framework 4.5 เต็มแล้วปัญหาก็หายไป

คุณไม่จำเป็นต้องอัปเดตโครงการใด ๆ เพื่อกำหนดเป้าหมาย 4.5 เพียงแค่ติดตั้งบนเซิร์ฟเวอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.