我爲我想保護的圖像創建了一個自定義RouteHandler。我的RouteHandler只需要一個新的路徑(圖形/ {文件名}),並查找真正的文件路徑,設置MIME類型,並提供它。這工作正常。 (http://www.mikesdotnetting.com/Article/126/ASP.NET-MVC-Prevent-Image-Leeching-with-a-Custom-RouteHandler)保護ASP.NET MVC中的圖像(帶自定義RouteHandler)
接下來我想做的是在我的自定義處理程序中對會話變量進行檢查,以便確保試圖查看圖像的人員有權這樣做。
基本上,他們會通過一個登錄(輸入一個代碼),它會設置一個會在自定義RouteHandler中尋找的會話變量。
我的問題是,我似乎無法從自定義RouteHandler中獲取會話數據。
最後,我的問題是:如何在控制器中設置數據,並在後續請求中使用自定義RouteHandler中的數據?
我該如何使用IRequiresSessionState?我目前的設置是我有一個實現IRouteHandler的類「ImageRouteHandler」,然後我只有一個GetHttpHandler方法,它提供了我的圖像。 – 2010-06-29 00:45:23
@Brian ImageRouteHandler可以進行會話驗證,並返回403未經授權的應用程序隨後捕獲並處理的內容。或者你可以在第一次檢查會話的時候建立一個鏈接的IHttpHandler,然後如果它認爲正確的話執行第二次。 – 2010-06-29 00:58:59
在嘗試從RouteHandler內引用會話變量時,我仍然只是變爲空 – 2010-06-29 01:22:45