डिफ़ॉल्ट रूप से अधिकृत विशेषता वर्ग httpcontext को तर्क के रूप में लेता है। जब बुलाया जाता है। इसके बाद यह HttpContext.User.Identity.Is प्रमाणीकृत बूल मान की जांच करता है और तदनुसार कार्य करता है। यह केवल तभी काम करता है जब आप फॉर्म प्रमाणीकरण का उपयोग करते हैं। यदि आप अपना लॉगिन लॉजिक (उदाहरण के लिए सत्र ऑब्जेक्ट में) का उपयोग कर रहे हैं, तो आप प्राधिकृत विशेषता से एक वर्ग प्राप्त कर सकते हैं और इसे कॉल कर सकते हैं।
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
clsSession sess = httpContext.Session["Current"] as clsSession;
if (sess.IsLogin) return true;
return false;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new ViewResult { ViewName = "Unauthorized" };
}
}
तो फिर तुम इस तरह इस वर्ग का उपयोग कर सकते हैं:
[MyAuthorize]
public ActionResult Index()
{
return View();
}
यह काम करेंगे। आप सभी नियंत्रक कार्यों में [प्राधिकरण] के बजाय [MyAuthorize] का उपयोग कर सकते हैं। यदि यह झूठा लौटाता है, तो यह एक दृश्य वापस करेगा (इस मामले में "अनधिकृत")। दृश्य नाम कुछ भी हो सकता है और दृश्य/साझा फ़ोल्डर में स्थित हो सकता है।
स्रोत
2013-04-25 16:17:51
बहुत बहुत धन्यवाद। महान संसाधन! – Jose3d