2011-06-13 9 views
5

मैंने एक कस्टम प्राधिकरण एट्रिब्यूट बनाया है जिसे मैं अपने नियंत्रकों पर रख रहा हूं। मैंने this article का पालन किया। मैंने ऑन-प्राधिकरण विधि में कस्टम प्राधिकरण तर्क लागू किया है और यह ठीक काम करता है। उपयोगकर्ता प्राधिकरण विफल रहता है जब मैं वर्तमान में निम्नलिखित कर रहा हूँ:जब उपयोगकर्ता अधिकृत नहीं है तो AccessDenied पृष्ठ पर रीडायरेक्ट करें

// if authorization check fails... 
filterContext.Result = new HttpUnauthorizedResult(); 

यह एक उपयोगकर्तानाम/पासवर्ड संकेत प्रदर्शित करता है।

मेरा प्रश्न यह है कि उपयोगकर्ता को प्राधिकरण विफल होने पर उपयोगकर्ता को "एक्सेस अस्वीकृत" प्रकार पृष्ठ पर भेजने का अनुशंसित तरीका क्या है?

मैं एमवीसी 3 का उपयोग कर रहा हूं।

उत्तर

2

अंत मैं एक सीधी रीडायरेक्ट के लिए चला गया में:

public override void OnAuthorization(AuthorizationContext filterContext) 
... 
// if authorization check fails... 
filterContext.Result = new RedirectResult(AccessDeniedPage); 

संपादित करें: इस एक ही साइट पर काम कर सकते हैं रोब Conery एक बहुत अच्छा ASP.NET MVC: Securing Your Controller Actions

+3

लिंक टूटा हुआ है :-( – JenonD

5

प्रवेश पृष्ठ पर साथ HttpException फेंक कर सकते हैं, आप जांच करता है, तो उपयोगकर्ता पहले ही प्रवेश कर रहा है और बदले की पहुँच से मना संदेश लॉगिन शीघ्र प्रदर्शित कर सकते हैं।

+0

साथ विस्तार से इस का वर्णन लेख है, यह समाधान एक ही साइन-ऑन सिस्टम के लिए बिल्कुल काम नहीं करता है जब तक कि आप सुरक्षा टोकन सेवा को अपनी रीलिंग पार्टी साइटों के सभी भूमिकाओं/उपयोगकर्ता पहुंच अधिकारों को पूरी तरह समझने के लिए नहीं चाहते हैं जो बहुत गलत आईएमओ होगा। –

+0

अब तक इतना अच्छा +1 – Har

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