重写 AuthorizeAttribute 的 OnAuthorization 方法:
using System.Web.Mvc;
namespace Demo.Web.Common
{
public class AuthorizeUserAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
return;
}
if (!Demo.ExternalService.UserService.IsUserInRole(filterContext.HttpContext.User.Identity.Name))
{
filterContext.Result = new RedirectResult("http://www.test.com");//身份验证不通过,则跳转至此网站。
}
}
}
}
Controller 控制器配置:
using System.Web.Mvc;
namespace Demo.Ad.Web.Controllers
{
[AuthorizeUser]//可以在 Controller 上直接配置,作用于此 Controller 下所有 Action
public class IndexController : Controller
{
//[AuthorizeUser]
public ActionResult Index()
{
return View();
}
}
}
本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/asp-net-mvc-authorizeattribute-onauthorization-url-redirect.html,如需转载请自行联系原作者