Ho creato un progetto MVC 4 di base. Aggiunti HomeController e Home \ Index.cshtml e ContactUs.cshtml. Aggiungi percorso in Global.asax per ContactUs.MVC 4 override AuthorizeAttribute non funzionante
Aggiungere una cartella Auth e aggiungere una classe Auth.css nella cartella Auth.
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;
}
}
}
In HomeController
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
//
// GET: /Home/
[Auth]
public ActionResult ContactUs()
{
return View();
}
}
Il problema è quando esegue il codice e visita http: // localhost: [numero porta qui]/Home/ContactUs, non colpisce sulla classe di override AuthAttribute.
Il codice ha qualcosa di sbagliato?
cosa stai cercando di raggiungere? non è ovvio ... –
Sto provando a personalizzare [Autorizza] su [Auth] e usarlo su cotrollers. Ciò mi consentirà di creare la mia autenticazione anziché utilizzare l'abbonamento standard. – user2130167
Questo è quello che cerco di raggiungere. L'unica differenza è che MVC 4 non è per MVC3. http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx – user2130167