8

एमवीसी में इन 2 के बीच क्या अंतर है?दावा प्रिंसिपल। वर्तमान बनाम HttpContext.Current.User?

वे समान दिखते हैं, और वे एक ही प्रकार/कक्षा System.Web.Security.RolePrincipal वापस लौटते हैं लेकिन वहां सूक्ष्मताएं हैं।

उदा। जब ClaimsPrincipal.Current

cp.FindFirst(ClaimTypes.Name); //{"Unable to connect to SQL Server database."} <--HUH!? 
cp.Claims; //{"Value cannot be null.\r\nParameter name: username"} 

ऊपर काम करता है के माध्यम से उत्पन्न उदाहरण के खिलाफ बुलाया निम्नलिखित कोड विभिन्न त्रुटियों फेंकता है जब सीपी इस बजाय है:

var cp = System.Web.HttpContext.Current.User 

जब त्वरित घड़ी मैं के माध्यम से निजी सदस्यों के लिए नीचे ड्रिलिंग देख सकते हैं कि दोनों के पास एक ही दावा शब्दकोश है। हालांकि ClaimsPrincipal.Current

सहायता - यह क्यों है !? के कारण किसी भी कारण से सार्वजनिक संपत्ति उड़ाती है। यह मुझे पागल बना रहा है।

============= संपादित ==================

यह लगभग समय बिस्तर पर जाने के लिए होना चाहिए।

आईप्रिनियल कई पहचानों का समर्थन करता है। इसे किसी प्रकार की दुकान की आवश्यकता है। IIDentity दावों का एक उदाहरण देता है IDententity और स्टोर की आवश्यकता नहीं है।

मैं बस गलत गुणों को ड्रिल कर रहा था। उनमें से दो अपने आकार यानी लगभग समान हैं। वही गुण और विधियां, जिन्हें मैंने उन्हें भ्रमित कर दिया।

उत्तर

7

पहचान वर्तमान प्रमाणीकृत उपयोगकर्ता है और प्रिंसिपल सुरक्षा संदर्भ है कि कोड चल रहा है।

यह आलेख एक अच्छा स्पष्टीकरण है कि मुझे उपयोगी http://msdn.microsoft.com/en-us/library/ftx85f8x.aspx मिला।

+0

धन्यवाद मुझे इसके अच्छे पढ़ने की ज़रूरत है। – Alwyn

संबंधित मुद्दे