在我想要禁用遠程可訪問性(計劃的管理任務)的WebAPI 2應用程序中,有一些操作方法。其他行動方法應該公開。在這種情況下,ActionFilter
是最好的選擇嗎?僅允許WebAPI 2中的本地計算機發出請求
回答
FROM書「臨ASP.NET MVC 4第4版」:
public class CustomActionAttribute : FilterAttribute, IActionFilter {
public void OnActionExecuting(ActionExecutingContext filterContext) {
if (filterContext.HttpContext.Request.IsLocal) {
filterContext.Result = new HttpNotFoundResult();
}
}
public void OnActionExecuted(ActionExecutedContext filterContext) {
// not yet implemented
}
}
我認爲,跨域資源共享(CORS)會幫助你的,如果你有你的網站的本地URL。您可以將公開行爲的來源列表應用於您的受保護操作,並且僅限本地來源。例如:
地方:
[EnableCors(Origins = new[] { "http://localhost", "http://sample.com" })]
public class ValuesController : ApiController
{
......
}
並固定:
[EnableCors(origins: "http://localhost")]
public class ValuesController : ApiController
{
......
}
您可以通過在下一個鏈接瞭解更多的細節:CORS support for ASP.NET Web API和Scope Rules for [EnableCors]
感謝您的建議。我不會想到這樣做。 –
不會阻止來自瀏覽器的呼叫嗎?服務器端的電話不會被允許,假設開放的端口和什麼? – user323774
@ user323774我開發了使用我的API的移動應用程序,並且在允許啓用cors屬性之前我無法訪問我的API(EnableCorsAttribute(「*」,「*」,「*」);) – RredCat
- 1. Phonegap是否允許發出POST請求?
- 2. 發出請求到本地主機
- 3. 如何僅允許來自我的網頁的發佈請求?
- 4. 本地計算機上的Sitecore開發
- 5. 向IPv6計算機發送API請求
- 6. Symfony 2 - 允許選項請求
- 7. C++ - 發出的請求未到達其他計算機
- 8. 請求允許爲
- 9. 配置ZF2路由以僅允許發佈請求
- 10. Chrome不允許向允許的域發送Ajax請求
- 11. 從SilverLight向本地主機發出http請求
- 12. 使用PowerShell通過遠程計算機發出請求
- 13. 無法在本地Nodejs服務器中允許跨域請求
- 14. 從Docker容器內部向本地主機發出請求
- 15. 僅允許來自本地機器的MySQL連接
- 16. 方法不允許在WebAPI中發帖
- 17. 訪問WebAPI中的請求對象2
- 18. 如何僅允許我的App Engine中的內部(cron)請求
- 19. 的WebAPI CORS - 訪問控制允許來源頭出現在請求錯誤
- 20. 當請求者在本地計算機上時,從OWIN中的請求者獲取可路由的IPV6地址
- 21. C#應用程序攔截計算機發出的網絡請求
- 22. Express.js發佈請求「原產地不允許」錯誤
- 23. Python3請求庫提交表單,不允許發佈請求
- 24. iOS在本地發出請求
- 25. 允許請求到App_Data
- 26. Tomcat不允許PUT請求
- 27. 請求允許動態
- 28. GitHub - 只允許拉請求
- 29. 錯誤:只允許請求
- 30. Mod_Rewrite條件有助於盜鏈,但允許本地請求
我敢肯定你會了解如何讓這個例子按照需要工作:) – opewix
不錯的答案,雖然,我看到很多;我在返回的404 Not Found中遇到了一些麻煩。我會說'403 Forbidden'更合適。 – Stefan
@Stefan有你的問題的答案:https://stackoverflow.com/questions/5649852/asp-net-web-service-i-would-like-to-return-error-403-forbidden – opewix