2011-04-08 84 views
0

我正在使用IHttpHandler來處理我的下載。它流出文件。 但是,此處理程序需要將令牌與存儲在會話中的令牌進行比較。因此,它使用IRequiresSessionState如何在使用IHttpHandler下載時阻止導航被阻止?

現在的問題是:只要IRequiresSessionState在那裏,用戶不能繼續瀏覽網站,而下載正在運行。

有沒有比使用處理程序,這將解決我的問題(我仍然需要IIS6兼容,但如果只有IIS7的解決方案,它仍然會好起來)不同的方法?

請注意,我無法更改會話檢查。我必須訪問會話。

.NET和IIS中有很多東西我還沒有發現,也許有一些功能可以使用。

回答

0

難道你不能只是重定向請求到另一個處理器與URL中的令牌,以便它不需要再訪問會話?

+0

好主意,但我怎麼能確定其他處理程序重定向到我而不是一些用戶試圖欺騙安全系統? – Krumelur 2011-04-08 15:06:28

+0

是的,這是一個很好的觀點。但是,如果您有GUID作爲數據庫對象的標識符,這不是問題,您可以讓用戶猜測您擁有的GUID - 他們將無法:) 但是,如果此令牌只是一個整數值,我的解決方案不會顯然是安全的 - 好奇的用戶可能想在URL中嘗試不同的值:( – 2011-04-08 16:01:01