@hellangle और @Andreas ने सुझाव दिया समाधान की तरह, मैं इस समस्या को हल करने के लिए निम्न कोड का प्रयोग किया:
public class CustomizedAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
var userAuthInfo = GetUserAuthInfo();
if (!userAuthInfo.IsAuthenticated())
{
filterContext.Result = new RedirectResult(UrlToYourLoginPage);
return;
}
if (!userAuthInfo.IsAuthorized())
{
var result = new ViewResult {ViewName = "UnAuthorized"};
result.ViewBag.Message = "Sorry! You are not authorized to do this!";
filterContext.Result = result;
}
}
}
बेशक
, आप उपयोगकर्ता प्राधिकरण जानकारी वर्ग और संबंधित तरीकों को लागू करने की जरूरत है (GetUserAuthInfo, IsAuthenticated, IsAuthorized) आपकी विशिष्ट आवश्यकताओं के अनुसार। एमवीसी इंजन कहीं भी कहीं भी 'अनधिकृत' नामक एक दृश्य रखा जाना चाहिए। तो यह एक नियंत्रक वर्ग (@ hellangle के जवाब में बताया) या एक कार्रवाई पद्धति पर इस्तेमाल किया जा सकता:
[CustomizedAuthorizeAttribute]
public class TargetController : Controller
{
[CustomizedAuthorizeAttribute]
public ActionResult TargetAction()
{
// Your Code
}
}
आदेश विभिन्न नियंत्रक वर्गों और कार्रवाई के तरीकों के लिए विभिन्न पहुँच नियंत्रण रणनीति प्रदान करने के लिए CustomizedAuthorizeAttribute के लिए एक निर्माता को लागू करता है कक्षा जो अभिगम नियंत्रण जानकारी का प्रतिनिधित्व करने वाले पैरामीटर को स्वीकार करती है और फिर तदनुसार अनुकूलित प्राधिकृत एट्रिब्यूट क्लास को तत्काल प्रदान करती है।
हाहा "कोई अधिकार दोस्त" पृष्ठ ... lol –