संपादित करें: चूंकि एएसपी.नेट एमवीसी 4 सबसे अच्छा तरीका अंतर्निहित AllowAnonymous विशेषता का उपयोग करने के लिए है।
नीचे जवाब ASP.NET MVC के पुराने संस्करणों
आप प्राधिकरण या आवश्यकता नहीं है तय करने के लिए एक कस्टम प्राधिकरण विशेषता एक वैकल्पिक bool पैरामीटर के साथ मानक AuthorizeAttribute से इनहेरिट बना सकते हैं को दर्शाता है।
public class OptionalAuthorizeAttribute : AuthorizeAttribute
{
private readonly bool _authorize;
public OptionalAuthorizeAttribute()
{
_authorize = true;
}
public OptionalAuthorizeAttribute(bool authorize)
{
_authorize = authorize;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if(!_authorize)
return true;
return base.AuthorizeCore(httpContext);
}
}
तो फिर तुम उस विशेषता के साथ अपने आधार नियंत्रक को सजाने कर सकते हैं:
[OptionalAuthorize]
public class ControllerBase : Controller
{
}
और किसी भी नियंत्रक आप प्राधिकरण बस एक 'गलत' के साथ ओवरराइड का उपयोग नहीं करना चाहते हैं के लिए - जैसे
[OptionalAuthorize(false)]
public class TestController : ControllerBase
{
public ActionResult Index()
{
return View();
}
}
स्रोत
2009-04-14 11:56:23
मैं इस के बारे में सोचा है, लेकिन मैं एक सरल समाधान के लिए उम्मीद की गई थी। हालांकि अगर "वे" एक प्रदान नहीं करते हैं तो आपका समाधान सबसे अच्छा है। –
'[AllowAnonymous] 'विशेषता का उपयोग करना बेहतर है। – Jaider
रुको ... तो नियंत्रक केवल किसी विशेष प्रकार के शीर्ष-स्तरीय वर्ग की विशेषता का सम्मान करता है? – Triynko