我正在讀一本關於MVC2,並在的OutputCache部分它指出:的OutputCache和授權在MVC3過濾器
警告在前面的「授權過濾器是怎樣互動 與輸出緩存,」我解釋說, [授權]具有特殊的 行爲,以確保未經授權的訪問者因爲已經被緩存而無法獲取敏感的 信息。 但是,除非您專門阻止它,否則緩存的輸出可能會被傳送給不同的授權用戶,而不是最初爲其生成的用戶。一個防止的辦法是 實現特定內容項目作爲 授權過濾器(從AuthorizeAttribute派生)的訪問控制,而不是 簡單地執行授權邏輯內嵌在一個操作方法, 因爲AuthorizeAttribute知道如何避免被繞過輸出 緩存。仔細測試以確保授權和輸出緩存以您期望的方式進行交互。
這在MVC3中仍然如此嗎?
如果是肯定的,那麼防止發生這種情況的方法是什麼? (因爲書中的解釋過於模糊)。
問候。
太好了,無論如何我會開始賞金,所以也許我可以捕捉更多的解釋:D感謝一百萬。 – vtortola
因此,如果我使用「OutputCacheAttribute.VaryByHeader = Cookie」,它將在授權方面安全嗎?我想要緩存的是呈現的頁面,因爲它們中的一些很大並且具有很多生成邏輯。 – vtortola
這是一個選項。但如果信息是關鍵的,那麼你應該不會依賴於存儲在客戶端的cookie。 – fengd