काम नहीं कर रहा है मैंने एक मूल एमवीसी 4 प्रोजेक्ट बनाया है। HomeController और होम \ Index.cshtml और ContactUs.cshtml जोड़ा गया। ContactUs के लिए Global.asax में मार्ग जोड़ें।एमवीसी 4 ओवरराइड AuthorizeAttribute
फ़ोल्डर फ़ोल्डर जोड़ें और ऑथ फ़ोल्डर में एक वर्ग Auth.css जोड़ें।
using System;
using System.Web;
using System.Web.Http;
using System.Net.Http;
namespace MvcApplicationTestProject1
{
public class AuthAttribute : AuthorizeAttribute
{
//public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
//{
// HandleUnauthorizedRequest(actionContext);
//}
protected override void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext)
{
var response = actionContext.Request.CreateResponse(System.Net.HttpStatusCode.Redirect);
response.Headers.Add("Location", "http://www.google.com");
actionContext.Response = response;
}
//MVC 4 Web.Http.AuthorizeAttribute has IsAuthorized function but not AuthorizeCore
protected override bool IsAuthorized(System.Web.Http.Controllers.HttpActionContext actionContext)
{
return false;
}
}
}
HomeController
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
//
// GET: /Home/
[Auth]
public ActionResult ContactUs()
{
return View();
}
}
में समस्या है जब कोड चलाने के लिए और पर जाएँ http: // localhost: [पोर्ट संख्या यहाँ]/होम/हमसे संपर्क करें, यह ओवरराइड वर्ग पर हिट नहीं करता AuthAttribute।
क्या कोड में कुछ गड़बड़ है?
आप क्या हासिल करने की कोशिश कर रहे हैं? यह स्पष्ट नहीं है ... –
मैं [प्राधिकरण] को [एथ] में अनुकूलित करने और इसे cotrollers पर उपयोग करने की कोशिश कर रहा हूं। यह मानक सदस्यता का उपयोग करने के बजाय मेरे अपने प्रमाणीकरण का निर्माण करने के लिए लचीलापन प्रदान करेगा। – user2130167
यही वह है जिसे मैं प्राप्त करने का प्रयास करता हूं। केवल विचलन यह है कि यह एमवीसी 4 है लेकिन एमवीसी 3 के लिए नहीं है। http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc- प्रमाणीकरण- अनुकूलन- प्रमाणीकरण- और- प्राधिकरण-the-right-way.aspx – user2130167