ฉันจะขยายฟังก์ชันการทำงานของข้อมูลประจำตัวของ ASP.NET ปัจจุบัน (5.0) เพื่อแก้ไข ID ผู้ใช้จำนวนเต็มและสิทธิ์ด้านความปลอดภัยที่เกี่ยวข้องกับการอ้างสิทธิ์ได้อย่างไร สิ่งนี้ควรจะพร้อมใช้งานภายในจุดเชื่อมต่อบริการเบราว์เซอร์แอปพลิเคชันเว็บของฉันทั้งหมด (ทุกที่ที่มีคุกกี้หรือ JWT) รวมถึงฮับ SignalR, ตัวควบคุม MVC และตัวควบคุม WebAPI ควรทำงานร่วมกับการรับรองความถูกต้องของ OWIN
ขออภัยหากฉันพลาดคำตอบแล้วที่นี่ ฉันรู้ว่ามีโพสต์มากมายเกี่ยวกับเรื่องนี้ แต่ฉันไม่เห็นโพสต์ใดที่ดูเหมือนจะตอบคำถามได้ในขณะนี้ ต่อไปนี้เป็นวิธีแก้ปัญหาที่เกี่ยวข้องที่สุดสามข้อที่ฉันเคยพบเห็น และสาเหตุที่ไม่ได้ผล:
ตั้งค่า HttpContext.Current.User
ในทุกการโทรผ่าน global.asax Application_PostAuthenticateRequest
ฉันเคยเห็นฟังก์ชันรุ่นเก่า (MVC 4) ที่ล้าสมัยแล้ว ฉันรู้ว่าโดยทั่วไปแล้ว global.asax ไม่ใช่วิธีที่จะไปในวันนี้ ฉันยังใช้ OWIN; สิ่งนี้อาจไม่ทำงานเลยด้วยซ้ำ
แทนที่ ClaimsPrincipal ClaimsAuthenticationManager.Authenticate()
ด้วยการกำหนดค่า <system.identityModel><identityConfiguration><claimsAuthenticationManager type = "CustomClaimsAuthenticatonManager" />
อย่างไรก็ตาม ClaimsAuthenticationManager
มาจาก System.Identity
ซึ่งไม่ได้อยู่ในการอ้างอิงของโครงการ ASP.NET 5.0 ของฉันที่มี ClaimsAuthentication
ใช้งานอยู่ แต่ฉันมีการอ้างอิงถึง Microsoft.AspNet.Identity.Core
สิ่งต่าง ๆ ในโครงการของฉันจากแพ็คเกจ NuGet ปัจจุบัน ดูเหมือนว่าวิธีนี้ไม่เหมาะสำหรับแอป ASP.NET หรืออย่างน้อยก็ไม่ใช่แอปปัจจุบัน
ตั้งค่า UserManager.ClaimsIdentityFactory
เป็น ClaimsIdentityFactory
แบบกำหนดเอง โดยมีการแทนที่ CreateAsync
ดูเหมือนว่าสิ่งนี้อาจใช้งานได้ แต่ฉันไม่เห็นวิธีใดที่จะต่อกิ่งเข้ากับพฤติกรรมเริ่มต้นของ ASP.NET ปัจจุบัน ดูที่นี่: วิธีตั้งค่า ClaimsPrincipal แบบกำหนดเองใน MVC 5 < /ก>