何时在ASP.NET MVC管道中进行路由?
ASP.NET Application Life Cycle Overview for IIS 7.0
是否在步骤2(执行URL映射)?
我打算让一些有id
的路线“激活/(编号)”
“forgotpassword /(编号)”
我希望能够在第4步 - AuthenticateRequest的pipline中尽早访问id。这样我就可以通过URL的id部分将身份验证令牌传递给我的自定义身份验证模块。
我可以在自定义身份验证模块中访问id属性,还是必须从请求URL手动提取它?
感谢您的帮助,
邓肯
答案 0 :(得分:2)
UrlRouting似乎发生在第9步 - PostResolveRequestCache。
事实上它确实发生在AuthenticateRequest之后,这是第4步。
这是document for UrlRoutingModule
我在反射器中查找了它的Init()方法,这是它订阅PostResolveRequestCache事件的地方。
所以我想我现在必须尝试编写一些优雅地从网址中提取令牌的代码。
答案 1 :(得分:1)
我知道它不是你想要的答案 - 但从安全的角度来看,uri中的令牌是一个坏主意。它们可以通过javascript读取,然后发送到世界上任何其他网站。
要回答你的问题,路由是一个httpmodule,所以它很早就会发生,但在你的身份验证之后就会发生。见:http://msdn.microsoft.com/en-us/magazine/dd347546.aspx#id0070044