Когда происходит маршрутизация в конвейере? - PullRequest
3 голосов
/ 23 мая 2011

Когда происходит маршрутизация в конвейере ASP.NET MVC?

Обзор жизненного цикла приложений ASP.NET для IIS 7.0

Это на шаге 2 (Выполнить отображение URL)?

У меня есть несколько маршрутов с идентификатором

"включение / {ID}"

"forgotpassword / {ID}"

Я бы хотел получить доступ к идентификатору на ранней стадии в трубопроводе на шаге 4 - AuthenticateRequest. Чтобы я мог передать маркер аутентификации через часть идентификатора URL в мой пользовательский модуль аутентификации.

Так можно ли получить доступ к свойству id в моем модуле пользовательской аутентификации или мне нужно вручную извлечь его из URL-адреса запроса?

Спасибо за вашу помощь,

Duncan

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Похоже, что UrlRouting происходит на шаге номер 9 - PostResolveRequestCache.

Так оно и происходит на самом деле после AuthenticateRequest, который является шагом номер 4.

Это документ для UrlRoutingModule

Я посмотрел его метод Init () в отражателе, и именно там он подписывается на событие PostResolveRequestCache.

Так что теперь я должен попробовать написать несколькокод, который элегантно извлекает токен из URL вручную ..

1 голос
/ 23 мая 2011

Я знаю, что это не тот ответ, который вам нужен, но с точки зрения безопасности токены в URI - плохая идея. Они могут быть прочитаны с помощью javascript, а затем отправлены на любой другой сайт в мире.

Хотя, чтобы ответить на ваш вопрос, маршрутизация является http-модулем, поэтому она происходит очень рано, но происходит после вашей аутентификации. см .: http://msdn.microsoft.com/en-us/magazine/dd347546.aspx#id0070044

...