ฉันมีทั้งโปรเจ็กต์ wcf และ asp.net ด้วยกันในโปรเจ็กต์เดียวกัน (ฉันใช้ Azure ดังนั้นจึงสะดวกกว่า)
ฉันมีชุดนี้ใน web.config:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
บริการ wcf ของฉันตกแต่งด้วย:
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
เมื่อตั้งค่าคุณสมบัติเหล่านั้นแล้ว HttpContext.Current.User ไม่ควรตั้งค่าให้ฉันโดยอัตโนมัติเมื่อฉันเรียกใช้วิธีการในบริการ wcf ของฉัน ขณะนี้ HttpContext.Current.User เป็นโมฆะและไม่ได้ตั้งค่าให้ฉันโดยอัตโนมัติ
ฉันคิดว่าถ้าฉันใช้ aspNetCompatibilityEnabled เมธอด Application_AuthenticationRequest จะเริ่มทำงานใน Global.asax เมื่อเมธอด wcf ถูกดำเนินการ แต่กลับไม่เป็นเช่นนั้น
คุกกี้ .aspxauth ได้รับการส่งผ่านไปยังบริการ wcf อย่างถูกต้อง และฉันสามารถถอดรหัสคุกกี้ด้วยตนเองและตั้งค่าผู้ใช้ปัจจุบันได้
ข้อเสนอแนะว่าเหตุใดสิ่งนี้จึงไม่ทำงานอย่างที่ฉันคาดหวัง