Dot-Net-Core
為生產禁用控制器 API 端點
什麼是允許在開發中公開寧靜端點 api 甚至控制器但在發佈到其他環境時不可用的推薦方法?
沒有內置的方法可以做到這一點。您必須執行注入
IHostingEnvironment控制器之類的操作,然後在您的操作中進行如下檢查:if (!env.IsDevelopment()) { return NotFound(); }這將給出該路線實際上並不存在於開發環境之外的*外觀。*如果您要做的足夠多,那麼創建一個可以應用的自定義資源過濾器實際上可能會更好:
public class DevelopmentOnlyAttribute : Attribute, IResourceFilter { public void OnResourceExecuting(ResourceExecutingContext context) { var env = context.HttpContext.RequestServices.GetService<IHostingEnvironment>(); if (!env.IsDevelopment()) { context.Result = new NotFoundResult(); } } public void OnResourceExecuted(ResourceExecutedContext context) { } }然後您可以將其應用於相關操作,例如:
[DevelopmentOnly] public IActionResult Foo()