1

我为想要保护的图像创建了一个自定义 RouteHandler。我的 RouteHandler 只需采用一条新路由 (graphics/{filename}) 并查找真实文件路径、设置 mime 类型并提供服务。这很好用。(http://www.mikesdotnetting.com/Article/126/ASP.NET-MVC-Prevent-Image-Leeching-with-a-Custom-RouteHandler

接下来我想做的是在我的自定义处理程序中检查我之前设置的会话变量,以确保尝试查看图像的人有权这样做。

基本上,他们会传递一个登录名(输入一个代码),这将设置一个会话变量,我将在自定义 RouteHandler 中查找该变量。

我的问题是我似乎无法从自定义 RouteHandler 中获取会话数据。

最后,我的问题是:如何在控制器中设置数据并在后续请求中从自定义 RouteHandler 中提供给我?

4

1 回答 1

1

一、从传入的RequestContext到GetHttpHandler方法中,能不能通过不访问Session requestContext.HttpContext.Session?我不确定,我可以看到默认情况下这不起作用,因为它在管道中太早了。

如果没有,您总是可以通过将IRequiresSessionState接口添加到您的处理程序来轻松地将会话检查逻辑移动到处理程序中。

于 2010-06-26T03:00:44.937 回答