2014-02-14 91 views

回答

6

我不認爲你可以禁用web.config中的特定路由。通常情況下,如果您想禁用路線,您可以使用IgnoreRoute,或者只需在路線存在的地方刪除WebApiConfig.csGlobal.asax文件中的路線。

既然你只想在web.config中做,而不做編譯和另一個部署,我只能想兩種方法。

1)使用URL重寫

<rewrite> 
    <rules> 
    <clear /> 
    <rule name="diableRoute" stopProcessing="true"> 
     <match url="api/YourWebApiController" /> 
     <action type="Redirect" url="Error/NotFound" appendQueryString="false" /> 
    </rule> 
    </rules> 
</rewrite> 

這一結果將返回404錯誤頁面。

2)設置的授權規則

<location path="api/YourWebApiController"> 
    <system.web> 
     <authorization> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
    </location> 

這一結果將返回到登錄頁面,因爲到Web API路由訪問被拒絕。

您可以根據需要自定義一個。

+0

感謝您的回答。另一種解決方案是在IIS中配置請求過濾規則。 –

+1

是否有可能只啓用某些路徑並使用web.config中的方法拒絕所有其餘的api? – RPDeshaies