Temel bir MVC 4 projesi oluşturdum. HomeController ve Home \ Index.cshtml ve ContactUs.cshtml eklendi. ContactUs için Global.asax'ta rota ekleyin.MVC 4 geçersiz kılma AuthorizeAttribute çalışmıyor
Bir Klasör Auth ekleyin ve Auth klasörüne Auth.css sınıfı ekleyin. HomeController
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
//
// GET: /Home/
[Auth]
public ActionResult ContactUs()
{
return View();
}
}
yılında
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;
}
}
}
sorun olduğunda kod çalıştırılır ve http: // localhost: [port numarası buradan]/Ev/ContactUs, o geçersiz kılma sınıfına isabet etmez AuthAttribute.
Kod yanlış bir şey mi var?
size ulaşmak için ne çalışıyorsunuz? Açık değil ... –
[Yetkilendir] 'i [Auth]' a göre özelleştirmeye çalışıyorum ve bebek karyolalarında kullanıyorum. Bu, standart üyeliği kullanmak yerine kendi kimlik doğrulamayı oluşturmam için esneklik sağlayacaktır. – user2130167
Bu, elde etmeye çalıştığım şey. Sadece farklılık MVC 4'tür, ancak MVC3 için değildir. http://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way.aspx – user2130167