2011-08-08 10 views
5

HttpContext एएसपी.नेट एमवीसी 3 में ValidationAttribute के भीतर पहुंचा जा सकता है?क्या एएसपी.नेट एमवीसी में प्रमाणीकरण एट्रिब्यूट के भीतर HttpContext का उपयोग किया जा सकता है?

मुझे अपने सत्यापनकर्ता पर सच लौटने के लिए एक मैच के लिए अपने रूट डेटा में कुछ के लिए परीक्षण करने की आवश्यकता है।

धन्यवाद

उत्तर

6

हाँ, आप स्थिर HttpContext.Current संपत्ति वर्तमान http संदर्भ प्राप्त करने के लिए उपयोग कर सकते हैं।

यह संपत्ति आपके सत्यापन पर चल रहे थ्रेड के आधार पर, या गैर-HTTP अनुरोध जैसे यूनिट परीक्षण में निर्भर करती है, इस आधार पर शून्य हो सकती है।

आप अधिक से अधिक कॉल करने योग्य कोड बनाने के लिए आप जिस कॉल को बनाते हैं उसे दूर करना चाहते हैं।

return new HttpContextWrapper(HttpContext.Current); 

यह अमूर्त आप आसान परीक्षण के लिए कृत्रिम http संदर्भ आधार मामलों में पारित करने के लिए अनुमति देगा: ऐसा करने के लिए, अपनी पृथक सदस्य एक HttpContextBase लौटने के लिए, इस तरह की है।

+0

ठीक है धन्यवाद, मैंने सोचा कि शायद मुझे आधार सदस्य या पैरामीटर के माध्यम से इसे एक्सेस करने की आवश्यकता है। अंतर्दृष्टि के लिए चीयर्स। – GONeale

0

आप कर सकते हैं लेकिन आप इसके बजाय RemoteValidationAttribute का उपयोग क्यों नहीं कर सकते?

+0

मैं समझता हूं कि आप कैसे सोचेंगे कि यह आदर्श होगा, लेकिन मुझे वास्तव में फॉर्म लोड पर सत्यापन लागू करने की आवश्यकता थी, (यदि कोई निश्चित शर्त पूरी हो गई थी, तो फ़ील्ड पर प्रमाणीकरण मौजूद होगा, अन्यथा यह नहीं होगा) और AJAX नहीं है इसके लिए उपयुक्त समाधान। – GONeale

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

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