예제 #1
0
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            if (ReturnEmptyResult || filterContext.IsChildAction)
            {
                filterContext.Result = new EmptyResult();
            }
            else
            {
                if (filterContext.Controller.GetType().GetCustomAttributes(typeof(MrCMSAuthorizeAttribute), true).Any())
                {
                    if (filterContext.HttpContext.User.Identity.IsAuthenticated)
                    {
                        IMrCMSRoutingErrorHandler routingErrorHandler = MrCMSApplication.Get <IMrCMSRoutingErrorHandler>();
                        RouteData routeData = filterContext.RouteData;
                        routeData.Route = RouteTable.Routes.Last();
                        routeData.DataTokens.Remove("area");

                        RequestContext requestContext = new RequestContext(filterContext.HttpContext, routeData);
                        string         message        = string.Format("Not allowed to view {0}", requestContext.HttpContext.Request.Url);
                        int            code           = CurrentRequestData.CurrentUser != null ? 403 : 401;
                        routingErrorHandler.HandleError(requestContext, code, new HttpException(code, message));

                        filterContext.Result = new EmptyResult();
                    }
                    else
                    {
                        base.HandleUnauthorizedRequest(filterContext);
                    }
                }
            }
        }
예제 #2
0
 public MrCMSDisallowedHandler(IGetWebpageForRequest getWebpageForRequest, IMrCMSRoutingErrorHandler errorHandler,
                               IUserUIPermissionsService userUIPermissionsService)
 {
     _getWebpageForRequest     = getWebpageForRequest;
     _errorHandler             = errorHandler;
     _userUIPermissionsService = userUIPermissionsService;
 }
예제 #3
0
 public FileNotFoundHandler(WebExtensionsToRoute webExtensions, IMrCMSRoutingErrorHandler errorHandler, ICacheWrapper cacheWrapper, IControllerManager controllerManager)
 {
     _webExtensions     = webExtensions;
     _errorHandler      = errorHandler;
     _cacheWrapper      = cacheWrapper;
     _controllerManager = controllerManager;
 }
예제 #4
0
 public FileNotFoundHandler(SiteSettings siteSettings, IMrCMSRoutingErrorHandler errorHandler, ICacheWrapper cacheWrapper)
 {
     _siteSettings = siteSettings;
     _errorHandler = errorHandler;
     _cacheWrapper = cacheWrapper;
 }
예제 #5
0
 public PageNotFoundHandler(IGetWebpageForRequest webpageForRequest, IMrCMSRoutingErrorHandler errorHandler)
 {
     _webpageForRequest = webpageForRequest;
     _errorHandler      = errorHandler;
 }
예제 #6
0
 public MrCMSHttpHandler(IEnumerable <IMrCMSRouteHandler> routeHandlers, IMrCMSRoutingErrorHandler errorHandler)
 {
     _errorHandler  = errorHandler;
     _routeHandlers = routeHandlers.ToList();
 }
예제 #7
0
 public MrCMSDisallowedHandler(IGetWebpageForRequest getWebpageForRequest, IMrCMSRoutingErrorHandler errorHandler, IUserUIPermissionsService userUIPermissionsService)
 {
     _getWebpageForRequest = getWebpageForRequest;
     _errorHandler = errorHandler;
     _userUIPermissionsService = userUIPermissionsService;
 }
예제 #8
0
 public PageNotFoundHandler(IGetWebpageForRequest webpageForRequest, IMrCMSRoutingErrorHandler errorHandler)
 {
     _webpageForRequest = webpageForRequest;
     _errorHandler = errorHandler;
 }
예제 #9
0
 public MrCMSHttpHandler(IEnumerable<IMrCMSRouteHandler> routeHandlers, IMrCMSRoutingErrorHandler errorHandler)
 {
     _errorHandler = errorHandler;
     _routeHandlers = routeHandlers.ToList();
 }
예제 #10
0
 public FileNotFoundHandler(SiteSettings siteSettings, IMrCMSRoutingErrorHandler errorHandler, ICacheWrapper cacheWrapper)
 {
     _siteSettings = siteSettings;
     _errorHandler = errorHandler;
     _cacheWrapper = cacheWrapper;
 }