Lind.DDD.API核心技術分享

来源:http://www.cnblogs.com/lori/archive/2016/08/11/5759592.html
-Advertisement-
Play Games

回到目錄 關於Lind.DDD框架里API框架的技術點說明 講解:張占嶺 花名:倉儲大叔 主要框架:Lind.DDD 目錄 關於Lind.DDD.Authorization Lind.DDD為我們提交了強大的API校驗組件,只需要在全局或者要授權的controller上添加對應的過濾器即可完成授權的 ...


回到目錄

關於Lind.DDD框架里API框架的技術點說明

講解:張占嶺

花名:倉儲大叔

主要框架:Lind.DDD

目錄

  1. 關於Lind.DDD.Authorization
  2. 關於授權的原理
  3. 關於ApiValidateModelConfig
  4. 關於Lind.DDD.CacheConfigFile
  5. 如何為你的API項目註入授權模塊
  6. 關於服務端收取過濾器ApiValiadateFilter
  7. 如何在客戶端生產加密授權串
  8. 關於請求類與響應類
  9. 客戶端如何做分頁

 

關於Lind.DDD.Authorization

Lind.DDD為我們提交了強大的API校驗組件,只需要在全局或者要授權的controller上添加對應的過濾器即可完成授權的過程,這樣,你的API就安全多了。

關於授權的原理

客戶端在向API服務端獲取數據時,需要先申請一個appkey作為自己的標識,當然這也是雙方約定的,我們可以叫做公鑰,而真正做數據校驗的不是它,它只是一個唯一標識,對外公開,真正做數據加密的叫passKey它是保存在雙方內部的,不對外公開所以叫密鑰,在客戶端向API服務端通訊時,需要將這個passKey連同參數和appkey傳到服務端,由服務端做相同的校驗碼生產邏輯,最後兩者進行比較,相同即驗證通過。

 

關於ApiValidateModelConfig

ApiValidateModelConfig主要在服務端存儲所有被收取的客戶端的信息,它是一個列表集合,由AppKey,AppName,PassKey,ExpireDate等元素組成,它們具體的含義如下:

 

而這個實體在服務端校驗時,會從配置文件XML中反射出來,以遍進行比較,當然,你的配置文件如果沒有修改,它會直接從記憶體里進行獲取,這個邏輯由CacheConfig控制。

關於Lind.DDD.CacheConfigFile

它在早期的大叔框架里就已經出來了,主要用於做配置文件緩存的,當緩存文件被修改後,它的信息將重新被載入,否則將從內在中來進行獲取,這個文件需要管理員在服務端進行維護,在添加和刪除配置時,需要做修改,當然,我們也完全可以把它持久化到其它資料庫里,如sqlserver,redis等介質。

 

如何為你的API項目註入授權模塊

API項目註入授權功能很是容易,直接在對應的controller上添加過濾器Lind.DDD.Authorization.Api.ApiValiadateFilter即可。

 

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

-Advertisement-
Play Games
更多相關文章
  • 定義: 單來源調用指一個類的生成工作只能由特定類來執行。 eg李寧牌鞋子只能由李寧專賣店生產 這個問題歸結起來,也就是說在工廠模式中,指定的產品類只能通過具體的特定工廠類來生成,而不能自己new出來或者通過其他類生成。 具體的,我們就在代碼實現中進行說明瞭。 這裡我們來一步一步分析。 首先,一個類實 ...
  • 昨天跟大家分享了Hibernate中單向的一對多、單向多對一、雙向一對多的映射關係,今天跟大家分享下在Hibernate中雙向的多對多的映射關係 這次我們以項目和員工舉個慄子,因為大家可以想象得到,在真實的環境下,一個項目肯定是對應著多個員工的,這毫無疑問, 那麼同時,一個比較牛員工也能同時參與多個 ...
  • 接觸Hibernate也有一小段的時間了,愈發的覺得Hibernate是個神奇的東西,為什麼這麼說呢?因為你可以不懂一行sql,直接面向對象,就可以將數據直接保存到資料庫去!! 你還可以保存一個對象,然後一次性的將與它相關的所有數據保存到資料庫,比如說,你只需要保存班級對象,就可以將該班級信息和該班 ...
  • "封裝、"多態"、"繼承"。 "單一職責原則"、"開放封閉原則"、"里氏替換原則"、"依賴倒置原則"、"介面分離原則"。 低耦合與高內聚 ...
  • 首先,我看的是Nop 3.80,最新版 百度資料很多,Nop用到的主要的技術有: 1、Mvc,最新版用的是 5.2.3.0 2、entity framework 3、autofac 4、插件化 5、(因為我是邊看代碼邊寫這個博客,怕忘記了一些東西,所以邊看便記錄,後面我看到感覺有好處的會添加到這裡來 ...
  • (三) 優先使用聚合,而不是繼承 有一段時間,養豬場的老闆雇用了清潔工人來打掃豬舍。但有一天,老闆忽然對自己說"不對啊,既然我有機器人,為什麼還要雇人來做這件事情?應該讓機器人來打掃宿舍!" 於是,這個需求被提交到了機器人的研發小組。看到這個需求,我們敏感地意識到,這是一個潛藏了更多變化的需求,未來 ...
  • Atitit.excel導出 功能解決方案 php java C#.net版總集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 類庫選型java .net均有apache.poi 可用,php使用phpexcel1.8.01 1.3. ...
  • 對於設計模式, 從本質上說, 其最大的用途就是適應需求的變化. 因為有了設計模式,我們可以在設計階段就為未來可能發生的變化留下足夠的空間. 我們通過一個建造現代化養豬場的故事, 來討論一下設計模式與需要變化之間的關係. (一)設計模式最根本的意圖是適應需求的變化 一個機器人研發小組研製了一種能自動喂 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...