<<ABP文檔>> Mvc 控制器

来源:http://www.cnblogs.com/kid1412/archive/2016/10/31/6014030.html
-Advertisement-
Play Games

文檔目錄 本節內容: 簡介 AbpController基類 本地化 其它 過濾 異常處理和結果包裝 審計日誌 驗證 授權 工作單元 反偽造 模型綁定器 本地化 其它 異常處理和結果包裝 審計日誌 驗證 授權 工作單元 反偽造 簡介 ABP通過nuget包Abp.Web.Mvc集成到Asp.net M ...


文檔目錄

 

本節內容:

 

簡介

ABP通過nuget包Abp.Web.Mvc集成到Asp.net Mvc 控制器。你可以像往常那樣創建普通的Mvc控制器,依賴註入可以對普通的Mvc控制器起作用,但你應當使你的控制繼承自AbpController,它提供了許多好處和更好的集成到ABP。

 

AbpController基類

這是一個簡單的繼承自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方法正常工作,你可以在你的控制器基類里設置,這樣就不用為每個控制器重覆設置。

 

其它

你可以使用預先註入的AbpSessionEventBusPermissionManager、PermissionCheckerSettingManagerFeatureManager、FeatureCheckerLocalizationManagerLoggerCurrentUnitOfWork等基屬性。

 

過濾

異常處理和結果包裝

所有的異常都被自動處理、日誌並返回一個適應的響應給客戶端,更多信息查看異常處理

如果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>)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 通過資料庫和ajax方法寫出地圖 客戶端部分:html、js、css代碼部分: 服務端部分:app.js(一個JavaScript): 資料庫mysql信息: 最終結果: ...
  • 類似的文章園子里已有,請看這裡,個人感覺稍顯複雜,日前也打算寫一個簡單的給項目用,一些關鍵點記錄於此。最終效果如下: 後端使用Asp.net mvc5,前端框架有:jquery.validate、jquery.validate.unobtrusive、requirejs、Bootstrap,都是當前 ...
  • 直入正題,用JS實現一個簡單的打地鼠游戲 因為功能比較簡單就直接裸奔JS了,先看看效果圖,或者 線上玩玩 吧 如果點擊顏色比較深的那個(俗稱壞老鼠),將扣分50;如果點擊顏色比較淺的那個(俗稱好老鼠),將得分100 實現 老鼠好像有點難畫,又不想用圖片,就直接用CSS畫個簡單的圖代表老鼠和坑吧 ht ...
  • 動畫原理 SVG動畫,就是元素的屬性值關於時間的變化。 如下圖來說,元素的某個屬性值的起始值(from)到結束值(to)在一個時間段(duration)根據時間函數(timing-function)計算出每一幀(frame)的插值(interpolation)作為變換的行為。 PS:SVG動畫是幀動 ...
  • 一.常用的骨灰級清除浮動 解讀浮動閉合最佳方案:clearfix 二.唯一使用斜杠/分割的關鍵字 分割的分別是 字體大小 與 行高 ,其他關鍵是用空白符分割。 三.內聯元素相連之間存在間隙 原因:內聯元素是當做字體來處理的,字體之間是有間隔的 解決: 1.多個標簽寫在一行 2.將要閉合標簽的地方與開 ...
  • Output子句很方便,多數情況下可以省略了更新後插入或者刪除後插入操作表,將2個語句變成1個語句操作。不管從語句美觀還是效率上都是有不錯的提升, 但是對於Output自身,也是有一些限制的。 從文檔上看。主要有以下三點需要註意 1 Output into 的對象不能含有觸發器 2 Output i ...
  • 修改CentOS-Media.repo時 每行代碼開始不要有空格[c6-media] #庫名稱 name=CentOS-$releasever - Media #名稱描述 baseurl=file:///media/centos/ #yum源目錄,源地址 gpgcheck=1 #檢查GPG-KEY,... ...
  • 1.瞭解byzanz截取動態效果圖工具 byzanz能製作文件小,清晰的GIF動態效果圖,不足就是,目前只能通過輸入命令方式來錄製。 byzanz主要的參數選項有: -d, --duration=SECS 動畫的時間 (預設:10 秒) -e, --exec=COMMAND Command to e ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...