การแนะนำคุกกี้
ขั้นแรก เราจะให้ข้อมูลเบื้องต้นเกี่ยวกับคุกกี้โดยย่อ และอธิบายวิธีใช้ ASP เพื่อรักษาคุกกี้
คุกกี้คือไฟล์ขนาดเล็กที่จัดเก็บไว้ในคอมพิวเตอร์ของลูกค้า ซึ่งหมายความว่าทุกครั้งที่ผู้ใช้เยี่ยมชมไซต์ของคุณ คุณสามารถแอบวางไฟล์ที่มีข้อมูลที่เกี่ยวข้องไว้ในฮาร์ดไดรฟ์ของผู้ใช้ได้ ไฟล์นี้ประกอบด้วยข้อมูลเกือบทุกอย่างที่คุณต้องการตั้งค่า รวมถึงข้อมูลผู้ใช้ สถานะไซต์ และอื่นๆ ในกรณีนี้ อาจมีอันตราย: แฮกเกอร์อาจอ่านข้อมูลได้ เพื่อป้องกันไม่ให้ปัญหานี้เกิดขึ้น วิธีที่มีประสิทธิภาพคือเฉพาะโดเมนที่สร้างคุกกี้เท่านั้นที่จะเข้าถึงคุกกี้ได้ ซึ่งหมายความว่า: ตัวอย่างเช่น ytu.edu.cn สามารถเข้าถึงได้เฉพาะคุกกี้ที่สร้างโดย ytu.edu.cn เท่านั้น โดยทั่วไปแล้ว นี่ไม่ใช่ปัญหา แต่ถ้าคุณต้องการแบ่งปันข้อมูลผู้ใช้ที่เก็บไว้ในคุกกี้กับสองไซต์ที่แตกต่างกันในสองโดเมนที่ต่างกัน แน่นอนว่าคุณสามารถเลือกที่จะคัดลอกข้อมูลผู้ใช้ แต่ถ้าคุณต้องการ คุณสามารถทำได้เท่านั้น ลงทะเบียนบนไซต์หนึ่งและเป็นผู้ใช้ที่ลงทะเบียนของไซต์อื่น หรือจะเกิดอะไรขึ้นหากทั้งสองไซต์แชร์ฐานข้อมูลผู้ใช้และกำหนดให้ผู้ใช้เข้าสู่ระบบโดยอัตโนมัติ ในเวลานี้ การแชร์คุกกี้ข้ามโดเมนเป็นแผนการแก้ปัญหาที่ดีที่สุด
ขั้นแรกเรามาดูโค้ดประมวลผลคุกกี้ ASP บางส่วนเพื่อให้อ้างอิงได้ง่ายในอนาคต
'สร้างคุกกี้
Response.Cookies (MyCookie) หมดอายุ = วันที่ + 365
Response.Cookies (MyCookle) โดเมน = mydomaln.com
Response.Cookies(MyCookle)(ชื่อผู้ใช้)=strUsername
Response.Cookies(MyCookle)(รหัสผ่าน)=strPassword
การอ่านและเขียนคุกกี้นั้นง่ายมาก โค้ดข้างต้นจะสร้างคุกกี้และตั้งค่าคุณสมบัติของคุกกี้ ได้แก่ โดเมน เวลาหมดอายุ และค่าอื่น ๆ ที่เก็บไว้ในคุกกี้ ที่นี่ strUsename, strPassword เป็นตัวแปรที่ตั้งค่าไว้ก่อนหน้านี้ จากนั้น อ่านคุกกี้ผ่านข้อความต่อไปนี้
'อ่านคุกกี้'
datExpDate=Request.Cookies(MyCookie)
strDomaln=Request.Cookies(MyCookle).Domain
strUsername=Request.Cookies(MyCookle)(ชื่อผู้ใช้)
strPassword=Request.Cookies(MyCookie)(รหัสผ่าน)
สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดดูที่ข้อมูล ASP
ทำให้สำเร็จ
เคล็ดลับในการแบ่งปันคุกกี้คือการเปลี่ยนเส้นทาง กระบวนการทั่วไปคือ:
1. ผู้ใช้คลิกที่ siteA.com
2. หากผู้ใช้ไม่มีคุกกี้สำหรับ siteA.com ให้เปลี่ยนเส้นทางผู้ใช้ไปที่ siteB.com
3. หากผู้ใช้มีคุกกี้สำหรับ siteB.com ให้เปลี่ยนเส้นทางผู้ใช้กลับไปที่ siteA.com พร้อมด้วยธงพิเศษ (อธิบายไว้ด้านล่าง) มิฉะนั้น เพียงเปลี่ยนเส้นทางผู้ใช้ไปที่ siteA.com
4. สร้างคุกกี้ที่ siteA.com
ดูเหมือนง่าย แต่วิเคราะห์อย่างระมัดระวัง: siteA.com และ siteB.com ใช้การตั้งค่าผู้ใช้ร่วมกัน ดังนั้นหากผู้ใช้มีคุกกี้สำหรับ siteB.com (ลงทะเบียนแล้ว) siteA.com ก็สามารถอ่านคุกกี้และให้สิทธิ์อนุญาตคุกกี้ได้เช่นกัน ลักษณะเฉพาะ. ด้วยวิธีนี้ ผู้ใช้ที่เข้าชม siteA.com จะดูเหมือนเคยเข้าชม siteB.com
การตรวจสอบนี้ควรนำไปใช้ในไฟล์ cookie.inc ที่อยู่ใน siteA.com ลองมาดูรหัสนี้:
แอล-1
'SiteA.com ตรวจสอบคุกกี้
ถ้า Request.Querystring(Checked)<>จริงแล้ว
หากไม่ใช่ Request.Cookies(SiteA_Cookie).Haskeys แล้ว
'เปลี่ยนเส้นทางไปยัง siteB.com
Response.Redlrect(http://www.siteB.com/cookie.asp)
จบถ้า
จบถ้า
หากผู้ใช้มีคุกกี้สำหรับ siteA.com ก็ไม่จำเป็นต้องทำอะไร คำสั่งแรก if ถูกใช้เพื่อกำจัดลูปไม่สิ้นสุด มาดูไฟล์ cookie.asp บน siteB.com เพื่อทำความเข้าใจเพิ่มเติม
1-2
'ไซต์บี.คอม'
'ตรวจสอบคุกกี้
ถ้าไม่ใช่ Request.Cookies(SlteB_Cookle).Haskeys แล้ว
'เปลี่ยนเส้นทางไปยัง siteA.com
การตอบสนองการเปลี่ยนเส้นทาง (http://www.siteA.com/index.asp&?checked=True)
อื่น
'รับชื่อผู้ใช้
strUsername=Request.Cookies(SiteB_Cookie)(ชื่อผู้ใช้)
'ส่งผู้ใช้กลับไปยัง siteA.com ด้วยธงพิเศษ'
Response.Redlrect(http://www.siteA.com/index.asp&?checked=True&identrfer=&strUsername)
จบถ้า
หากผู้ใช้ยังไม่มีคุกกี้บน siteB.com ให้ส่งเขากลับไปที่ siteA.com และแจ้งให้แอปพลิเคชันทราบว่าคุณได้ตรวจสอบคุกกี้แล้วโดยระบุพารามิเตอร์ที่เรียกว่า checkd ในแบบสอบถาม มิฉะนั้น ให้ส่งผู้ใช้กลับไปที่ siteB.com และออกจากลูป