MVC 4 überschreiben AuthorizeAttribute nicht funktioniert

Erstellte ich eine grundlegende MVC 4 Projekt. Hinzugefügt den HomeController und Home\Index.cshtml und ContactUs.cshtml.
Add route im Allgemeinen.asax für ContactUs.

Fügen Sie einen Ordner "Auth" und fügen Sie eine Klasse Auth.css in den Auth Ordner.

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;
        }
    }
}

Im HomeController

public class HomeController : Controller
    {
        //
        //GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

        //
        //GET: /Home/ 
        [Auth]       
        public ActionResult ContactUs()
        {
            return View();
        }
    }

Das problem ist, wenn Sie führen Sie den code und besuchen Sie http://localhost:[port Nummer]/Home/ContactUs,
es trifft nicht auf das überschreiben der Klasse AuthAttribute.

Macht den code etwas falsch?

  • was wollen Sie erreichen? seine offensichtlich nicht...
  • Ich versuche, passen Sie den [Autorisieren], um [Auth] und verwenden Sie es auf cotrollers. Diese bieten Flexibilität für mich zu bauen, meine eigene Authentifizierung anstelle der Verwendung der standard-Mitgliedschaft.
  • Dies ist, was ich versuche zu erreichen. Nur diference ist, es ist das MVC 4, aber nicht für MVC3. weblogs.asp.net/jgalloway/archive/2012/05/04/...
InformationsquelleAutor user2130167 | 2013-03-04
Schreibe einen Kommentar