2013-02-25 72 views
1

我在全局過濾器中註冊了一個屬性。我希望它被禁用2個動作。我怎樣才能做到這一點?如何在MVC4中禁用特定操作控制器的全局屬性

+0

看看這個問題。這與你的問題類似。 http://stackoverflow.com/questions/12051321/how-to-add-authorizeattribute-on-global-level-and-exclude-it-for-some-actions/12055924#12055924 – 2013-02-25 13:46:57

回答

4

有一對夫婦的方式來處理這個問題:

  1. 如果你有在行動過濾器的代碼控制,你可以爲了測試控制器動作是否都裝飾有一些自定義的標記屬性修改(你將創建)並且不運行以防萬一。然後你將用這個標記屬性修飾2個控制器動作。
  2. 如果您無法控制此屬性的代碼,則可以通過實現IFilterProvider接口並在GetFilters方法中編寫自定義過濾器提供程序,以便實現測試控制器操作是否裝飾了某些自定義marker屬性,並且不在結果中包含您的全局過濾器。然後,不要將過濾器註冊爲全局操作過濾器,而是註冊您的自定義過濾器提供程序。過濾器提供程序通常用於向操作過濾器提供依賴注入。例如,這裏是an article,它詳細說明了StructureMap。
+0

非常感謝您的幫助! – CodeDemen 2013-02-25 16:49:19

相關問題