2008-09-25 11 views
6

मान लें कि आपके पास एक प्रोफ़ाइल पृष्ठ है जिसे केवल उस प्रोफ़ाइल के स्वामी द्वारा एक्सेस किया जा सकता है। यह प्रोफाइल पेज पर स्थित है:आप ASP.NET MVC का उपयोग कर वेब पेज प्रमाणीकरण का परीक्षण कैसे करते हैं?

उपयोगकर्ता/प्रोफाइल/{userID}

अब, मैं आदेश अन्य उपयोगकर्ताओं द्वारा इस पृष्ठ की पहुंच को रोकने के लिए कल्पना, आप वर्तमान जांच करने के लिए अपने UserController वर्ग का प्रोफ़ाइल समारोह की संरचना कर सकता है सत्र की पहचान: आईडी, uRL में से मेल खाता

HttpContext.Current.User.Identity.Name

है, तो आप आगे बढ़ें। अन्यथा आप किसी प्रकार के त्रुटि पृष्ठ पर रीडायरेक्ट करते हैं।

मेरा सवाल यह है कि आप इस तरह कुछ परीक्षण कैसे करते हैं? मैं अनुमान लगा रहा हूं कि नियंत्रक में HttpContext के बजाय आपको कुछ प्रकार की निर्भरता इंजेक्शन का उपयोग करने की आवश्यकता है, लेकिन मुझे स्पष्ट नहीं है कि ऐसा करने का सबसे अच्छा तरीका क्या है। कोई भी सलाह सहायक होगी।

उत्तर

1

मैं समाप्त हो गया "UserNameFilter" काजी में दिखाया गया है के साथ जा रहा मंज़ूर का blog post। एक आकर्षण और यूनिट परीक्षण के लिए आसान की तरह काम करता है।

1

उपरोक्त लिंक एक अच्छा है। मैं भी है कि इसके बजाय जोड़ना होगा प्रोग्राम के रूप में User.Identity.Name मूल्य की जाँच की है, तो आप अधिकृत विशेषताओं के रूप में लेख में रेखांकित उपयोग करना चाहिए:

http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx

0

यह नकली HttpContext के साथ मॉकिंग आता है।

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