ASP.Net MVC Маршрутизация и PreRequestHandler - PullRequest
1 голос
/ 18 марта 2009

Я пытаюсь создать экземпляр службы и аутентифицировать текущего пользователя в методе Application_PreRequestHandlerExecute (), а затем избавиться от этого сервиса в методе * Application_PostRequestHandlerExecute () класса global.asax.cs. Одним из элементов, которые мне нужны для этого процесса, является orgname, который добавляется в начале моего URL-маршрута. Я сопоставил маршрут, который выглядит следующим образом: "{orgName} / {controller} / {action} / {id}"

Итак, мой вопрос в том, возможно ли в приложении ASP.Net MVC получить доступ к любой информации о маршрутизации (или как-то получить доступ к «orgname» в моем случае) в событии Application_PreRequestHandlerExecute ()? Если это невозможно, есть ли другой способ подключиться к MvcHandler и сделать что-то подобное (может, мне стоит создать собственный фильтр?)

1 Ответ

1 голос
/ 19 марта 2009

Вам нужен «RequestContext», чтобы найти все значения маршрута. Я не знаю другого способа получить их, кроме как внутри контроллера.

Вы должны реализовать «ActionFilterAttribute», а затем украсить им свои контроллеры.

ActionFilter имеет методы

//     Called after the action method executes.
public virtual void OnActionExecuted(ActionExecutedContext filterContext);
//     Called before the action method executes.
public virtual void OnActionExecuting(ActionExecutingContext filterContext);

, что вы можете делать всякие забавные вещи в.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...