4
在MVC 4項目中使用SimpleMembershipProvider時,如果沒有適當角色的用戶執行操作,他將被重定向到Account/Login。如何將用戶重定向到我自己的「沒有足夠的權限查看頁面」操作?如何將不適當的用戶重定向到不允許?
在MVC 4項目中使用SimpleMembershipProvider時,如果沒有適當角色的用戶執行操作,他將被重定向到Account/Login。如何將用戶重定向到我自己的「沒有足夠的權限查看頁面」操作?如何將不適當的用戶重定向到不允許?
可以覆蓋的方法做它
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 };
}
}