文檔目錄 本節內容: 簡介 AbpController基類 本地化 其它 過濾 異常處理和結果包裝 審計日誌 驗證 授權 工作單元 反偽造 模型綁定器 本地化 其它 異常處理和結果包裝 審計日誌 驗證 授權 工作單元 反偽造 簡介 ABP通過nuget包Abp.Web.Mvc集成到Asp.net M ...
本節內容:
ABP通過nuget包Abp.Web.Mvc集成到Asp.net Mvc 控制器。你可以像往常那樣創建普通的Mvc控制器,依賴註入可以對普通的Mvc控制器起作用,但你應當使你的控制繼承自AbpController,它提供了許多好處和更好的集成到ABP。
這是一個簡單的繼承自AbpController的控制器:
public class HomeController : AbpController { public ActionResult Index() { return View(); } }
ABP定義了L方法,使本地化更加容易,例如:
public class HomeController : AbpController { public HomeController() { LocalizationSourceName = "MySourceName"; } public ActionResult Index() { var helloWorldText = L("HelloWorld"); return View(); } }
要先設置LocalizationSourceName,才能讓L方法正常工作,你可以在你的控制器基類里設置,這樣就不用為每個控制器重覆設置。
你可以使用預先註入的AbpSession、EventBus、PermissionManager、PermissionChecker、SettingManager、FeatureManager、FeatureChecker、LocalizationManager、Logger、CurrentUnitOfWork等基屬性。
所有的異常都被自動處理、日誌並返回一個適應的響應給客戶端,更多信息查看異常處理。
如果Action的返回類型是JsonResult(或非同步的Task<JsonResult>),ABP也會預設地去包裝這個結果。
你可以通過給控制器或Action使用WrapResult和DontWrapResult特性來修改異常處理和結果包裝,也可以在啟動配置(using Configuration.Modules.AbpMvc()...)進行全局設置。更多信息查看ajax文檔。
AbpMvcAuditFilter用來集成到審計日誌系統,它在預設情況下記錄所有對所有Action請求(如果審計沒有被禁用),你可以用Audited和DisableAuditing特性控制Action和控制器的審計日誌。
AbpMvcValidationFilter自動檢查ModelState.IsValid併在檢測到非法時阻止Action執行。實現輸入DTO的驗證在驗證文檔里進行了描述。
你可以為你的api控制器或Action使用AbpApiAuthorize特性,阻止未授權用戶訪問它們,例如:
public class HomeController : AbpController { [AbpMvcAuthorize("MyPermissionName")] public ActionResult Index() { return View(); } }
你可以為Action或控制器定義AllowAnonymous特性,廢止認證/授權。AbpApiController也定義了一個在定義里檢查許可的快捷方法IsGranted。
更多信息查看授權文檔。
AbpMvcUowFilter用來集成到工作單元系統,在一個Action執行前自動開始一個工作單元,併在Action執行結束後完成工作單元(如果沒有異常拋出)。
你可為一個Action使用UnitOfWork特性,控制它的工作單元行為,你也可以在啟動配置里為所有Action修改預設的工作單元特性。
AbpAntiForgeryMvcFilter自動保護Mvc的Action,阻止來自CSRF/XSRF的POST、PUT和DELETE請求攻擊。更多信息查看CSRF文檔。
AbpMvcDateTimeBinder用來標準化通過Clock.Normalize方法輸入的DateTime(和Nullable<DateTime>)。