我創建了一個基本的MVC 4項目。添加了HomeController和Home \ Index.cshtml和ContactUs.cshtml。 在Global.asax中爲聯繫人添加路由。MVC 4覆蓋AuthorizeAttribute不工作
添加一個文件夾Auth並在Auth文件夾中添加一個類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://本地主機:這裏端口號] /首頁/聯繫我們, 它不打不上覆蓋類AuthAttribute。
代碼有問題嗎?
什麼是你想達到什麼目的?它並不明顯... – 2013-03-04 01:46:16
我正在嘗試將[Authorize]自定義爲[Auth]並在cotrollers上使用它。這將爲我創建自己的身份驗證而不是使用標準成員身份提供了靈活性。 – user2130167 2013-03-04 02:06:21
這是我試圖實現的。唯一不同的是MVC 4,但不適用於MVC3。 http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx – user2130167 2013-03-04 02:49:35