如何将没有适当角色的用户重定向到不允许?
Posted
技术标签:
【中文标题】如何将没有适当角色的用户重定向到不允许?【英文标题】:How to redirect user not in proper role to Not Permitted? 【发布时间】:2013-07-14 21:12:05 【问题描述】:在 MVC 4 项目中使用 SimpleMembershipProvider 时,当没有适当角色的用户运行操作时,他会被重定向到 Account/Login。如何将用户重定向到我自己的“没有足够的权限查看页面”操作?
【问题讨论】:
【参考方案1】:你可以重写方法来做到这一点
public class CustomAuthorizeAttribute : AuthorizeAttribute
public override void OnAuthorization(AuthorizationContext filterContext)
base.OnAuthorization(filterContext);
if (filterContext == null)
throw new ArgumentNullException("filterContext");
if (your code detecting no user is logged)
filterContext.Result = new RedirectResult(System.Web.Security.FormsAuthentication.LoginUrl + "?returnUrl=" + filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.RawUrl));
return;
if (your code detecting that the user has no access)
var ViewData = new ViewDataDictionary();
ViewData.Add("Title", "No access");
ViewData.Add("Description", "blah blah blah blah blah blah blah ");
filterContext.Result = new ViewResult ViewName = "~/Views/Shared/NoAccess.cshtml", ViewData = ViewData ;
【讨论】:
以上是关于如何将没有适当角色的用户重定向到不允许?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 spring security 和 primefaces 处理重定向?