Я хочу реализовать дополнительные глобальные фильтры в приложении Sitecore 8 MVC. Похоже, мне нужно переопределить стандартный Sitecore InitializeGlobalFilters. Но отсутствие документации заставляет меня нервничать. Я что-то сломаю, переопределив это?Sitecore и MVC Filters
2
A
ответ
0
Решено путем перекрытия трубопровода Sitecore.
Во-первых, создан новый трубопровод:
[UsedImplicitly]
public class InitializeGlobalFilters
{
public virtual void Process(PipelineArgs args)
{
this.AddGlobalFilters(args);
}
protected virtual void AddGlobalFilters(PipelineArgs args)
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
GlobalFilters.Filters.Add(this.CreateRequestFilter());
}
protected virtual object CreateRequestFilter()
{
return (object)new PipelineBasedRequestFilter();
}
}
Затем добавить патч конфигурации, который вставляется это в нужном месте в трубопроводе (имитируя где Sitecore было это:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<initialize>
<processor type="Sitecore.Mvc.Pipelines.Loader.InitializeGlobalFilters, Sitecore.Mvc">
<patch:attribute name="type">DD.Platform.Sc.Pipelines.MvcPipelines.InitializeGlobalFilters, DD.Platform.Sc</patch:attribute>
</processor>
</initialize>
</pipelines>
</sitecore>
</configuration>
0
Мы использовали в одном проекте фильтры.
В global.asax мы имеем:
protected void Application_Start()
{
...
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
...
}
В папке App_Start мы имеем класс FilterConfig
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
У нас есть также класс фильтра
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
....
base.OnActionExecuting(filterContext);
}
}
и все работает отлично, мы не выполнили проект InitializeGlobalFilters.
Смежные вопросы
- 1. Action Filters В MVC
- 2. Grid MVC multiple filters
- 3. Sitecore 7.2 MVC и DMS
- 4. Sitecore MVC ViewRendereing и GlassMapper
- 5. Серьезный Sitecore MVC/Glassmapper issue
- 6. ASP.NET MVC с шаблонами Pipes & Filters. Выгоды?
- 7. MVC Обработка ошибок с использованием Action Filters
- 8. CILightTunnel и CIKaleidoscope Filters
- 9. Sitecore MVC версия Различия
- 10. Sitecore многосайтовая MVC решение
- 11. Sitecore MVC Sitecore.Mvc.Presentation.RenderingModel
- 12. Sitecore MVC Model.Item
- 13. Sitecore MVC Form Post
- 14. Sitecore MVC Флажок
- 15. Кнопка в Sitecore MVC
- 16. В чем разница между Java Servlet Filters и Jetty Filters?
- 17. Sitecore MVC + Children
- 18. Пакетирование с Sitecore MVC
- 19. Sitecore с использованием Glass Mapper и MVC
- 20. Sitecore, пользовательские контроллеры и маршруты MVC
- 21. sitecore mvc ControllerRenderer и элемент контекста Layout
- 22. Интеграция Sitecore 7 и MVC 4
- 23. Action Filters + AspNetRedisProvider
- 24. sqlalchemy filters и sql injection
- 25. AngularJs Filters
- 26. Sitecore 7.1 MVC Передача вспомогательных переменных MVC
- 27. Inkscape Filters
- 28. Sitecore MVC - место динамического просмотра
- 29. singleton pattern in sitecore MVC
- 30. Sitecore MVC multi step form
Im действительно пытается избежать редактирования файл Global.asax, если это вообще возможно. –
Я просто сделал таблицу маршрутов в Sitecore по той же причине, чтобы не переопределять Global.ascx. Пожалуйста, прочитайте мой блог и посмотрите, может ли это привести вас в правильном направлении. Таблица маршрутов, но я думаю, что переопределения будут похожи. Ht ф: //www.waitingimpatiently.com/moving-controllers-in-to-sitecore/ –