2011-04-04 74 views
1

如何有條件地隱藏web方法?如果web.config中的標誌設置爲false,我不想公開web方法。如果這是真的,那麼我會公開網絡方法。在C中有條件地隱藏asmx web方法#

含義:如果該標誌爲真,該方法應只對客戶端可見,否則應該不可用於客戶端。

這是可能的C#?

+0

「揭露」是什麼意思? – SLaks 2011-04-04 15:55:16

+0

我的意思是,如果Web配置值爲true,則該方法應該只對客戶端可見,否則應該不可用於客戶端。 – 2011-04-04 17:19:27

回答

2

您可以檢查方法中的標誌,並在未設置的情況下拋出異常。

+0

如果標誌爲false,我不想讓客戶端看到這個方法。 – 2011-04-04 17:48:13

+0

這並不簡單。您可以嘗試覆蓋上市系統;祝你好運。 – SLaks 2011-04-04 17:51:56

+0

嗯..我想我必須離開的方法,那麼:( – 2011-04-06 12:34:40

1

你不能這樣做。

您的客戶「看到」Web方法,因爲它們在WSDL中列出。 WSDL生成相當靜態 - 它基於您的方法中的[WebMethod]屬性。真的沒有能力從生成的WSDL中刪除項目。

如果你可以切換到WCF,你會發現這非常容易。與此同時,您只需使用授權 - 防止某些客戶端調用某些方法。

+0

感謝約翰,我們正在轉移到WCF的過程中,但它需要一些時間之前,這個asmx看到它發生。 – 2011-04-06 12:34:10