9
ASP.NET MVC - ตั้งค่า IIdentity ที่กำหนดเองหรือ IPrincipal
ฉันต้องทำสิ่งที่ค่อนข้างง่าย: ในแอปพลิเคชัน ASP.NET MVC ของฉันฉันต้องการตั้งค่า IIdentity / IPrincipal แบบกำหนดเอง แล้วแต่จำนวนใดจะง่ายกว่า / เหมาะสมกว่า ฉันต้องการที่จะขยายการเริ่มต้นเพื่อที่ฉันสามารถเรียกสิ่งที่ต้องการและUser.Identity.Id User.Identity.Roleไม่มีอะไรแฟนซีเพียงคุณสมบัติพิเศษบางอย่าง ฉันได้อ่านบทความและคำถามมากมาย แต่ฉันรู้สึกว่าฉันทำให้มันหนักกว่าที่เป็นจริง ฉันคิดว่ามันจะง่าย หากผู้ใช้เข้าสู่ระบบฉันต้องการตั้งค่า IIdentity ที่กำหนดเอง ดังนั้นฉันคิดว่าฉันจะใช้Application_PostAuthenticateRequestใน global.asax ของฉัน อย่างไรก็ตามที่เรียกว่าในทุกคำขอและฉันไม่ต้องการโทรไปยังฐานข้อมูลในทุกคำขอที่จะขอข้อมูลทั้งหมดจากฐานข้อมูลและวางในวัตถุ IPrincipal ที่กำหนดเอง ที่ดูเหมือนว่าไม่จำเป็นมากช้าและผิดที่ (ทำสายฐานข้อมูลมี) แต่ฉันอาจผิด หรือข้อมูลนั้นมาจากไหน? ดังนั้นฉันจึงคิดว่าเมื่อใดก็ตามที่ผู้ใช้ลงชื่อเข้าใช้ฉันสามารถเพิ่มตัวแปรที่จำเป็นบางอย่างในเซสชันของฉันซึ่งฉันเพิ่มลงใน IIdentity ที่กำหนดเองในApplication_PostAuthenticateRequestตัวจัดการเหตุการณ์ อย่างไรก็ตามฉันContext.Sessionอยู่ที่nullนั่นเพื่อที่จะไม่ไป ฉันทำงานนี้มาหนึ่งวันแล้วและฉันรู้สึกว่าฉันขาดอะไรไป ไม่ควรทำยากเกินไปใช่มั้ย ฉันยังสับสนกับทุกสิ่งที่เกี่ยวข้อง (กึ่ง) ที่มาพร้อมกับสิ่งนี้ MembershipProvider, MembershipUser, RoleProvider, ProfileProvider, IPrincipal, IIdentity, FormsAuthentication.... ฉันเพียงคนเดียวที่ทุกคนพบอย่างนี้ทำให้เกิดความสับสน? หากใครบางคนบอกฉันได้ว่าวิธีแก้ปัญหาที่ง่ายสง่างามและมีประสิทธิภาพในการจัดเก็บข้อมูลพิเศษบางอย่างในความเป็น II โดยไม่ต้องมีฟัซซี่พิเศษทั้งหมด …