ฉันต้องการเพิ่มข้อมูลเพื่อช่วยให้เข้าใจปัญหา การรับรองความถูกต้องของฟอร์มอนุญาตให้เก็บข้อมูลผู้ใช้ในคุกกี้หรือในสตริงการสืบค้นของ URL วิธีที่ไซต์ของคุณรองรับสามารถกำหนดค่าในไฟล์ web.config
ตามที่ Microsoft :
วิธีการลงชื่อออกจากระบบเอาข้อมูลตั๋วแบบฟอร์มการตรวจสอบจากคุกกี้หรือ URL ตัวอย่างเช่นถ้า CookiesSupported เป็นเท็จ
ในขณะเดียวกันพวกเขาก็พูดว่า :
หนึ่งในค่า HttpCookieMode ที่ระบุว่ามีการกำหนดค่าแอปพลิเคชันสำหรับการตรวจสอบความถูกต้องของรูปแบบที่ไม่ใช้การปรุงหรือไม่ เริ่มต้นคือ UseDeviceProfile
สุดท้ายเกี่ยวกับ UseDeviceProfile พวกเขาพูดว่า :
ถ้าคุณสมบัติ CookieMode ถูกตั้งค่าให้ UseDeviceProfile ที่
CookiesSupported ทรัพย์สินจะกลับจริงถ้าเบราว์เซอร์สำหรับ
คำขอปัจจุบันสนับสนุนทั้งคุกกี้และเปลี่ยนเส้นทางกับคุกกี้ ; มิฉะนั้นคุณสมบัติของ CookiesSupported จะคืนค่าเป็นเท็จ
การประกอบทั้งหมดเข้าด้วยกันขึ้นอยู่กับเบราว์เซอร์ของผู้ใช้การกำหนดค่าเริ่มต้นอาจส่งผลให้มีการสนับสนุนคุกกี้เป็นจริงซึ่งหมายความว่าวิธี SignOut ไม่ได้ล้างตั๋วจากคุกกี้ ดูเหมือนว่าจะตอบโต้ได้ง่ายและฉันไม่รู้ว่าทำไมมันจึงทำงานเช่นนี้ฉันคาดหวังว่า SignOut จะออกจากระบบผู้ใช้ไม่ว่าในกรณีใด ๆ
วิธีหนึ่งในการทำให้ SignOut ทำงานได้ด้วยตัวเองคือเปลี่ยนโหมดคุกกี้เป็น "UseCookies" (ต้องใช้คุกกี้) ในไฟล์ web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/SignIn" cookieless="UseCookies"/>
</authentication>
จากการทดสอบของฉันการทำสิ่งนี้ทำให้ SignOut ทำงานด้วยตัวเองในราคาที่คุณต้องมีเพื่อให้คุกกี้ทำงานได้อย่างถูกต้อง