public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            List <FilterInfo> result = new List <FilterInfo>();

            Assembly assembly = actionDescriptor.ControllerDescriptor.ControllerType.Assembly;

            result.AddRange(configuration.Filters);

            this.autoFilterInfos.Where(x =>
            {
                var attr = x.AutoFilter;
                return(attr.Scope == AutoFilterScopes.Global ||
                       (attr.Scope == AutoFilterScopes.AppModule && x.Assembly == assembly));
            }).ForEach(x =>
            {
                IFilter filter = Activator.CreateInstance(x.FilterType) as IFilter;
                result.Add(new FilterInfo(filter, FilterScope.Global));
            });

            result.AddRange(actionDescriptor.ControllerDescriptor.GetFilters()
                            .Select(f => new FilterInfo(f, FilterScope.Controller)));

            result.AddRange(actionDescriptor.GetFilters().Select(t => new FilterInfo(t, FilterScope.Action)));

            return(result);
        }
Пример #2
0
        /// <summary>
        /// Returns the filters that are associated with this action method.
        /// </summary>
        /// <param name="configuration">The HTTP configuration.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <returns>
        /// The filters that are associated with this action method.
        /// </returns>
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("actionDescriptor");
            }

            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters()
                                    .Select(instance => new FilterInfo(instance, FilterScope.Controller));
            var actionFilters = actionDescriptor.GetFilters()
                                .Select(instance => new FilterInfo(instance, FilterScope.Action));

            var filters = controllerFilters.Concat(actionFilters).ToList();

            foreach (var filter in filters)
            {
                _kernel.Inject(filter.Instance);
            }

            return(filters);
        }
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
#if RELEASE
            try
            {
#endif
            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Controller));
            var actionFilters     = actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            var filters = controllerFilters.Concat(actionFilters);

            var filterInfos = filters as FilterInfo[] ?? filters.ToArray();
            foreach (var f in filterInfos)
            {
                // Injection
                _kernel.Inject(f.Instance);
            }

            return(filterInfos);

#if RELEASE
        }

        catch (Exception ex)
        {
            Tracing.Err.TraceEvent(TraceEventType.Error, 0, ex.ToString());
            if (ConfigUtil.DiagnosticsMode)
            {
                //For use on Test Server
                throw;
            }
            throw;
        }
#endif
        }
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            var controllerSpecificFilters = SequenceFilters(actionDescriptor.ControllerDescriptor.GetFilters(), FilterScope.Controller);

            var actionSpecificFilters = SequenceFilters(actionDescriptor.GetFilters(), FilterScope.Action);

            return(controllerSpecificFilters.Concat(actionSpecificFilters));
        }
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            List <FilterInfo> retval = new List <FilterInfo>();
            // IEnumerable<FilterInfo> actionFilter = actionDescriptor.GetFilters().Select(x=>new FilterInfo(x,FilterScope.Action));
            var actionFilter     = actionDescriptor.GetFilters();
            var controllerFilter = actionDescriptor.ControllerDescriptor.GetFilters();

            Resolve(retval, controllerFilter, FilterScope.Controller);
            Resolve(retval, actionFilter, FilterScope.Action);
            return(retval);
        }
        public IEnumerable <FilterInfo> GetFilters([NotNull] HttpConfiguration configuration,
                                                   [NotNull] HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            if (actionDescriptor == null)
            {
                throw new ArgumentNullException(nameof(actionDescriptor));
            }

            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters();
            var actionFilters     = actionDescriptor.GetFilters();
            int totalFilterCount  = configuration.Filters.Count + controllerFilters.Count + actionFilters.Count;

            if (totalFilterCount == 0)
            {
                return(Enumerable.Empty <FilterInfo>());
            }


            List <FilterInfo> filters = new List <FilterInfo>(totalFilterCount);

            // Add global filters
            if (configuration.Filters.Count > 0)
            {
                filters.AddRange(configuration.Filters);
            }

            // Add controller filters
            for (int i = 0; i < controllerFilters.Count; i++)
            {
                filters.Add(new FilterInfo(controllerFilters[i], FilterScope.Controller));
            }

            // Add action filters
            for (int i = 0; i < actionFilters.Count; i++)
            {
                filters.Add(new FilterInfo(actionFilters[i], FilterScope.Action));
            }


            for (int i = 0; i < filters.Count; i++)
            {
                // ReSharper disable once ConvertClosureToMethodGroup
                this.container.Kernel.InjectProperties(filters[i].Instance, typePropertyDescriptorCache,
                                                       (info, model) => ValidateFilterDependency(info, model));
            }

            return(filters);
        }
Пример #7
0
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Controller));
            var actionFilters     = actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));
            var filters           = controllerFilters.Concat(actionFilters);

            foreach (var f in filters)
            {
                _kernel.Inject(f.Instance);
            }

            return(filters);
        }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("Configuration is null");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("ActionDescriptor is null");
            }

            IEnumerable<CustomFilterInfo> customActionFilters = actionDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Action)).Where(i => !typeof(IOrderedFilter).IsAssignableFrom(i.Instance.GetType()));
            IEnumerable<CustomFilterInfo> customControllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller)).Where(i => !typeof(IOrderedFilter).IsAssignableFrom(i.Instance.GetType()));

            IEnumerable<CustomFilterInfo> customActionOrderedFilters = actionDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Action)).Where(i => typeof(IOrderedFilter).IsAssignableFrom(i.Instance.GetType())).OrderByDescending(i => ((IOrderedFilter)i.Instance).Order);
            IEnumerable<CustomFilterInfo> customControllerOrderedFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller)).Where(i => typeof(IOrderedFilter).IsAssignableFrom(i.Instance.GetType())).OrderByDescending(i => ((IOrderedFilter)i.Instance).Order);

            var filterList = customControllerFilters.Concat(customActionFilters).Concat(customControllerOrderedFilters).Concat(customActionOrderedFilters).Select(i => i.ConvertToFilterInfo());

            return filterList;
        }
Пример #9
0
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            IEnumerable <FilterInfo> controllerFilters =
                actionDescriptor.ControllerDescriptor.GetFilters()
                .Select(instance => new FilterInfo(instance, FilterScope.Controller));
            IEnumerable <FilterInfo> actionFilters =
                actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            return(controllerFilters.Concat(actionFilters).Select(p =>
            {
                _container.InjectProperties(p.Instance);
                return p;
            }));
        }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            IEnumerable<FilterInfo> controllerFilters =
                actionDescriptor.ControllerDescriptor.GetFilters()
                    .Select(instance => new FilterInfo(instance, FilterScope.Controller));
            IEnumerable<FilterInfo> actionFilters =
                actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            return controllerFilters.Concat(actionFilters).Select(p =>
            {
                _container.InjectProperties(p.Instance);
                return p;
            });
        }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Controller));
              var actionFilters = actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

              var filters = controllerFilters.Concat(actionFilters);

              foreach (var f in filters)
              {
            // Injection
            _kernel.Inject(f.Instance);
              }

              return filters;
        }
Пример #12
0
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("Configuration is null");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("ActionDescriptor is null");
            }

            IEnumerable <CustomFilterInfo> customActionFilters     = actionDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller));
            IEnumerable <CustomFilterInfo> customControllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller));

            return(customControllerFilters.Concat(customActionFilters).OrderBy(i => i).Select(i => i.ConvertToFilterInfo()));
        }
        /// <summary>
        /// Returns the collection of filters associated with <paramref name="actionDescriptor"/>.
        /// </summary>
        /// <remarks>
        /// The implementation invokes <see cref="HttpActionDescriptor.GetFilters()"/> and <see cref="HttpControllerDescriptor.GetFilters()"/>.
        /// </remarks>
        /// <param name="configuration">The configuration. This value is not used.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <returns>A collection of filters.</returns>
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw Error.ArgumentNull("configuration");
            }

            if (actionDescriptor == null)
            {
                throw Error.ArgumentNull("actionDescriptor");
            }

            IEnumerable <FilterInfo> controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Controller));
            IEnumerable <FilterInfo> actionFilters     = actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            return(controllerFilters.Concat(actionFilters));
        }
        /// <summary>
        /// Returns the collection of filters associated with <paramref name="actionDescriptor"/>.
        /// </summary>
        /// <remarks>
        /// The implementation invokes <see cref="HttpActionDescriptor.GetFilters()"/> and <see cref="HttpControllerDescriptor.GetFilters()"/>.
        /// </remarks>
        /// <param name="configuration">The configuration. This value is not used.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <returns>A collection of filters.</returns>
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw Error.ArgumentNull("configuration");
            }

            if (actionDescriptor == null)
            {
                throw Error.ArgumentNull("actionDescriptor");
            }

            IEnumerable<FilterInfo> controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Controller));
            IEnumerable<FilterInfo> actionFilters = actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            return controllerFilters.Concat(actionFilters);
        }
Пример #15
0
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("Configuration is null");                
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("ActionDescriptor is null");
            }

            IEnumerable<CustomFilterInfo> customActionFilters = actionDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller));
            IEnumerable<CustomFilterInfo> customControllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller));

            return customControllerFilters.Concat(customActionFilters).OrderBy(i => i).Select(i => i.ConvertToFilterInfo());
        }
Пример #16
0
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("actionDescriptor");
            }

            var actionFilters     = actionDescriptor.GetFilters().Select(i => new FilterInfo(i, FilterScope.Action));
            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new FilterInfo(i, FilterScope.Controller));;
            var globalFilters     = configuration.Filters.Where(i => i.Scope == FilterScope.Global);

            var result = actionFilters.Concat(controllerFilters).Concat(globalFilters).Distinct().ToList();

            object filterMap;

            if (configuration.Properties.TryGetValue("FilterOrder", out filterMap))
            {
                var dictionaryFilterMap = filterMap as Dictionary <Type, int>;
                if (dictionaryFilterMap != null)
                {
                    var orderedFilters = new List <KeyValuePair <FilterInfo, int> >();
                    result.ForEach(x =>
                    {
                        int position;
                        if (dictionaryFilterMap.TryGetValue(x.Instance.GetType(), out position))
                        {
                            orderedFilters.Add(new KeyValuePair <FilterInfo, int>(x, position));
                        }
                        else
                        {
                            orderedFilters.Add(new KeyValuePair <FilterInfo, int>(x, -1));
                        }
                    });

                    result = orderedFilters.OrderBy(x => x.Value).Select(x => x.Key).ToList();
                }
            }

            return(result);
        }
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            IEnumerable <FilterInfo> controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters()
                                                         .Select(filter => new FilterInfo(filter, FilterScope.Controller));
            IEnumerable <FilterInfo> actionFilters = actionDescriptor.GetFilters()
                                                     .Select(filter => new FilterInfo(filter, FilterScope.Action));

            IEnumerable <FilterInfo> filters = controllerFilters.Concat(actionFilters);

            foreach (FilterInfo filterInfo in filters)
            {
                // Injection

                _kernel.Inject(filterInfo.Instance);
            }

            return(filters);
        }
Пример #18
0
            public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
            {
                if (configuration == null)
                {
                    throw new ArgumentNullException("API Filter Configuration");
                }

                if (actionDescriptor == null)
                {
                    throw new ArgumentNullException("API Filter Action Description");
                }

                foreach (var filter in actionDescriptor.GetFilters())
                {
                    _container.InjectProperties(filter);
                    yield return(new FilterInfo(filter, FilterScope.Action));
                }
            }
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance =>
            {
                var result = new FilterInfo(instance, FilterScope.Controller);
                return(result);
            });

            var actionFilters = actionDescriptor.GetFilters().Select(instance =>
            {
                filterProvider(instance.GetType(), instance);

                var result = new FilterInfo(instance, FilterScope.Action);
                return(result);
            });

            return(controllerFilters.Concat(actionFilters));
        }
Пример #20
0
            public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
            {
                if (configuration == null)
                {
                    throw new ArgumentNullException("API Filter Configuration");
                }

                if (actionDescriptor == null)
                {
                    throw new ArgumentNullException("API Filter Action Description");
                }

                foreach (var filter in actionDescriptor.GetFilters())
                {
                    _container.InjectProperties(filter);
                    yield return new FilterInfo(filter, FilterScope.Action);
                }
            }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("actionDescriptor");
            }

            var actionFilters = actionDescriptor.GetFilters().Select(i => new FilterInfo(i, FilterScope.Action));
            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new FilterInfo(i, FilterScope.Controller));;
            var globalFilters = configuration.Filters.Where(i => i.Scope == FilterScope.Global);

            var result = actionFilters.Concat(controllerFilters).Concat(globalFilters).Distinct().ToList();

            object filterMap;
            if (configuration.Properties.TryGetValue("FilterOrder", out filterMap))
            {
                var dictionaryFilterMap = filterMap as Dictionary<Type, int>;
                if (dictionaryFilterMap != null)
                {
                    var orderedFilters = new List<KeyValuePair<FilterInfo, int>>();
                    result.ForEach(x =>
                    {
                        int position;
                        if (dictionaryFilterMap.TryGetValue(x.Instance.GetType(), out position))
                        {
                            orderedFilters.Add(new KeyValuePair<FilterInfo, int>(x, position));
                        }
                        else
                        {
                            orderedFilters.Add(new KeyValuePair<FilterInfo, int>(x, -1));
                        }
                    });

                    result = orderedFilters.OrderBy(x => x.Value).Select(x => x.Key).ToList();
                }
            }

            return result;
        }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            Requires.NotNull("configuration", configuration);
            Requires.NotNull("actionDescriptor", actionDescriptor);

            IEnumerable<FilterInfo> controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Controller));
            IEnumerable<FilterInfo> actionFilters = actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            var allFilters = controllerFilters.Concat(actionFilters).ToList();

            bool overrideFilterPresent = allFilters.Any(x => x.Instance is IOverrideDefaultAuthLevel);

            if(!overrideFilterPresent)
            {
                allFilters.Add(new FilterInfo(new RequireHostAttribute(), FilterScope.Action));
            }

            return allFilters;
        }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("actionDescriptor");
            }

            var customActionFilters = actionDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Action));
            var customControllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller));
            var customGlobalFilters = configuration.Filters.Select(i => new CustomFilterInfo(i));

            var result = (customControllerFilters.Concat(customActionFilters).Concat(customGlobalFilters)).OrderBy(i => i).Select(i => i.FilterInfo);
            return result;
        }
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("actionDescriptor");
            }

            var customActionFilters     = actionDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Action));
            var customControllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(i => new CustomFilterInfo(i, FilterScope.Controller));
            var customGlobalFilters     = configuration.Filters.Select(i => new CustomFilterInfo(i));

            var result = (customControllerFilters.Concat(customActionFilters).Concat(customGlobalFilters)).OrderBy(i => i).Select(i => i.FilterInfo);

            return(result);
        }
        public IEnumerable<FilterInfo> GetFilters(
            HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            // Taken from ActionDescriptorFilterProvider
            var controllerFilters
                = GetFilterInfos(actionDescriptor.ControllerDescriptor.GetFilters(), FilterScope.Controller);
            var actionFilters
                = GetFilterInfos(actionDescriptor.GetFilters(), FilterScope.Action);
            // Taken from ActionDescriptorFilterProvider

            var controllerProxiedFilters
                = GetFilterInfos(actionDescriptor.ControllerDescriptor.GetCustomAttributes<IServiceAttribute>(),
                                 FilterScope.Controller);
            var actionProxiedFilters
                = GetFilterInfos(actionDescriptor.GetCustomAttributes<IServiceAttribute>(), FilterScope.Action);

            return controllerFilters
                .Concat(controllerProxiedFilters)
                .Concat(actionFilters)
                .Concat(actionProxiedFilters);
        }
        public IEnumerable<FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (actionDescriptor == null) throw new ArgumentNullException("actionDescriptor");

            var configFilters = configuration.Filters;
            foreach (var configFilter in configFilters)
                _container.InjectProperties(configFilter);

            var controllerFilters = actionDescriptor.ControllerDescriptor.GetFilters().Select(instance =>
            {
                _container.InjectProperties(instance);
                return new FilterInfo(instance, FilterScope.Controller);
            });
            var actionFilters = actionDescriptor.GetFilters().Select(instance =>
            {
                _container.InjectProperties(instance);
                return new FilterInfo(instance, FilterScope.Action);
            });

            return configFilters.Concat(controllerFilters).Concat(actionFilters);
        }
Пример #27
0
        /// <summary>
        /// Returns an enumeration of filters.
        /// </summary>
        /// <param name="configuration">The HTTP configuration.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <returns>An enumeration of filters.</returns>
        public IEnumerable <FilterInfo> GetFilters(HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            Check.Require(configuration != null);
            Check.Require(actionDescriptor != null);

            IEnumerable <FilterInfo> globalFilters =
                configuration.Filters.Select(n => new FilterInfo(n.Instance, FilterScope.Global));

            IEnumerable <FilterInfo> controllerFilters = actionDescriptor
                                                         .ControllerDescriptor
                                                         .GetFilters()
                                                         .Select(n => new FilterInfo(n, FilterScope.Controller));

            IEnumerable <FilterInfo> actionFilters = actionDescriptor
                                                     .GetFilters()
                                                     .Select(n => new FilterInfo(n, FilterScope.Action));

            IEnumerable <FilterInfo> filters = globalFilters.Concat(controllerFilters.Concat(actionFilters));

            this.container.Kernel.ResolveProperties(filters.Select(n => n.Instance));

            return(filters);
        }
        public override Collection <IFilter> GetFilters()
        {
            List <IFilter> filters       = new List <IFilter>(_innerDescriptor.GetFilters());
            List <IFilter> returnFilters = new List <IFilter>(filters.Count);

            for (int i = 0; i < filters.Count; i++)
            {
                if (FilterTracer.IsFilterTracer(filters[i]))
                {
                    returnFilters.Add(filters[i]);
                }
                else
                {
                    IEnumerable <IFilter> filterTracers = FilterTracer.CreateFilterTracers(filters[i], _traceWriter);
                    foreach (IFilter filterTracer in filterTracers)
                    {
                        returnFilters.Add(filterTracer);
                    }
                }
            }

            return(new Collection <IFilter>(returnFilters));
        }
Пример #29
0
        public IEnumerable <FilterInfo> GetFilters(
            HttpConfiguration configuration, HttpActionDescriptor actionDescriptor)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (actionDescriptor == null)
            {
                throw new ArgumentNullException("actionDescriptor");
            }

            var controllerFilters =
                actionDescriptor.ControllerDescriptor.GetFilters()
                .Select(instance => new FilterInfo(instance, FilterScope.Controller));
            var actionFilters =
                actionDescriptor.GetFilters().Select(instance => new FilterInfo(instance, FilterScope.Action));

            return(controllerFilters
                   .Concat(actionFilters)
                   .Select(fi =>
            {
                var ta = fi.Instance as IProxyFilterAttribute;
                if (ta != null)
                {
                    var filter = (IFilter)_resolve(ta.FilterType);
                    //TODO Set(filter, ta);

                    return new FilterInfo(
                        filter,
                        fi.Scope
                        );
                }

                return fi;
            }));
        }
Пример #30
0
        private string GetAuthorization(HttpActionDescriptor description)
        {
            var filters               = description.GetFilters().Union(description.ControllerDescriptor.GetFilters()).ToList();
            var authorizeUser         = filters.OfType <AuthorizeUserAttribute>().FirstOrDefault();
            var authorizeDevice       = filters.OfType <AuthorizeDeviceAttribute>().FirstOrDefault();
            var authorizeDeviceOrUser = filters.OfType <AuthorizeDeviceOrUserAttribute>().FirstOrDefault();

            if (authorizeDeviceOrUser != null)
            {
                return(string.Format("Device and User ({0})", authorizeDeviceOrUser.Roles ?? "All Roles"));
            }

            if (authorizeUser != null)
            {
                return(string.Format("User ({0})", authorizeUser.Roles ?? "All Roles"));
            }

            if (authorizeDevice != null)
            {
                return("Device");
            }

            return("None");
        }
        private string GetAuthorization(HttpActionDescriptor description)
        {
            var filters = description.GetFilters().Union(description.ControllerDescriptor.GetFilters()).ToList();
            var authorizeAdmin = filters.OfType<AuthorizeAdminAttribute>().FirstOrDefault();
            var authorizeUser = filters.OfType<AuthorizeUserAttribute>().FirstOrDefault();
            var authorizeAdminOrCurrentUser = filters.OfType<AuthorizeAdminOrCurrentUser>().FirstOrDefault();
            var authorizeUserOrDevice = filters.OfType<AuthorizeUserOrDeviceAttribute>().FirstOrDefault();

            if (authorizeAdminOrCurrentUser != null)
                return "User or Key (" + authorizeAdminOrCurrentUser.CurrentUserAccessKeyAction + ")";

            if (authorizeAdmin != null)
                return "Administrator or Key (" + authorizeAdmin.AccessKeyAction + ")";

            if (authorizeUser != null)
                return "User" + (authorizeUser.AccessKeyAction == null ? null : " or Key (" + authorizeUser.AccessKeyAction + ")");

            if (authorizeUserOrDevice != null)
                return "User or Device" + (authorizeUserOrDevice.AccessKeyAction == null ? null : " or Key (" + authorizeUserOrDevice.AccessKeyAction + ")");

            return "None";
        }
 public override IEnumerable <IFilter> GetFilters()
 {
     return(originalAction.GetFilters());
 }
Пример #33
0
            public override Collection <IFilter> GetFilters()
            {
                var filters = originalAction.GetFilters();

                return(filters);
            }
Пример #34
0
        private string GetAuthorization(HttpActionDescriptor description)
        {
            var filters = description.GetFilters().Union(description.ControllerDescriptor.GetFilters()).ToList();
            var authorizeUser = filters.OfType<AuthorizeUserAttribute>().FirstOrDefault();
            var authorizeDevice = filters.OfType<AuthorizeDeviceAttribute>().FirstOrDefault();
            var authorizeDeviceOrUser = filters.OfType<AuthorizeDeviceOrUserAttribute>().FirstOrDefault();

            if (authorizeDeviceOrUser != null)
                return string.Format("Device and User ({0})", authorizeDeviceOrUser.Roles ?? "All Roles");

            if (authorizeUser != null)
                return string.Format("User ({0})", authorizeUser.Roles ?? "All Roles");

            if (authorizeDevice != null)
                return "Device";

            return "None";
        }