2012-04-27 8 views
7

एएसपी.नेट (एमवीसी और वेबएपीआई) में, उपयोगकर्ता पहचान वस्तु को फॉर्म प्रमाणीकरण कुकी से डेटा के साथ कैसे प्रारंभ किया जाता है?उपयोगकर्ता पहचान कैसे है | एप्लिकेशन लाइफसाइक्ल के दौरान प्रधानाचार्य सेट

मैं 2 प्रकार के प्रमाणीकरण, कुकी आधारित और कस्टम हेडर आधारित एक का उपयोग करना चाहता हूं। चूंकि AuthorizeAttribute क्लास केवल User.Identity.IsAuthorized() विधि की जांच करता है और फॉर्म प्रमाणीकरण के लिए विशिष्ट कोड का उपयोग नहीं करता है, तो इसका मतलब है कि मुझे केवल User.Identity ऑब्जेक्ट को मैन्युअल रूप से सेटअप करना है, चाहे global.asax में या DelegatingHandler में।

तो, मैं उपयोगकर्ता को कैसे स्थापित करूं.धन्यवाद? फॉर्मवर्क प्रमाणीकरण का उपयोग करके फ्रेमवर्क स्वचालित रूप से इसे कैसे सेट अप करता है?

उत्तर

1

यहां एक related answer है।

पहचान एक हैंडलर में, मॉड्यूल में या ग्लोबल.एक्सएक्स में सेट की जा सकती है। आप अनुरोध जीवन चक्र में किसी भी समय इसे संशोधित कर सकते हैं, लेकिन आमतौर पर पोस्ट करने के लिए सबसे अच्छी जगह PostAuthenticateRequest में है। इस बिंदु पर, फॉर्म प्रमाणीकरण ने इसका काम किया है और आप HttpContext.Current.User को बढ़ा या बदल सकते हैं।

+1

तो अलीस्टाड ने क्या कहा, एक बार जब मैं पहचान स्थापित करता हूं, तो वे 'उपयोगकर्ता। नियंत्रक' जोड़ते हैं, तो पहचान उस पर होगी? –

0

एएसपी.नेट एमवीसी नियंत्रक के पास Controller.User है लेकिन वेब एपीआई में एक नहीं है। वर्तमान में requested डाला जा रहा है।

+1

मैं कर सकता हूं: 'HttpContext.Current.User' –

+0

@Lolcoder यह बहुत अच्छा नहीं है। यह अतीत के स्थिर/धागा भंडारण क्षेत्र के दिनों से एक लटका हुआ है। ** यह इकाई परीक्षण नहीं किया जा सकता **। – Aliostad

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