用RSA替登入密碼加密

做網頁系統開發一定會遇到帳號登入的問題。

大家都知道密碼要用[HttpPost]放在Request Body裡面來進行傳遞。這句話只對了一半,因為只要在瀏覽器按下F12進入開發者模式,密碼還是會被看光光的,好恐怖的阿。

所以對密碼進行加密是最基本的資安防護。

...繼續閱讀 »

SignalR(二):Server to all Client推播 & Client to all Client廣播

SignalR是一個自己蠻有興趣的東西,提供Server與Client端之間的即時通訊,而且使用也不算複雜。

SignalR所提供的功能有:

  • 自動處理連接管理。
  • 同時將訊息傳送給所有已連線的用戶端。 例如,聊天室。
  • 將訊息傳送給特定用戶端或用戶端群組。
  • 調整以處理增加的流量。

這次利用SignalR來做個訊息推播(Server to Client) & 廣播(Client to Client)的簡單範例。

...繼續閱讀 »

SignalR(一):Server to Client推播

Client to Client廣播測試請參考另外一篇文章 => SignalR(二):Server to all Client推播 & Client to all Client廣播

=================

SignalR是一個自己蠻有興趣的東西,提供Server與Client端之間的即時通訊,而且使用也不算複雜。

SignalR所提供的功能有:

  • 自動處理連接管理。
  • 同時將訊息傳送給所有已連線的用戶端。 例如,聊天室。
  • 將訊息傳送給特定用戶端或用戶端群組。
  • 調整以處理增加的流量。

這次利用SignalR來做個訊息推播的簡單範例。

...繼續閱讀 »

.Net Core DI 服務生命週期

Scoped:每次Post/Get Request在Application結束前,都會使用相同的instance

Transient:每次注入都會建立新的instance

Singleton:應用程式從開始到結束,使用的都是同一個instance。(ex:執行應用程式後,會先進入Program,接著執行Post/Get Request,接著再執行一次Post/Get Request。這種情況使用的都是同一個Service實體。第二次Post/Get Request不會再進入Program,不算Application結束)。

...繼續閱讀 »

.Net core如何在本機開發環境切換不同的組態設定appsettings來進行測試

我們在寫程式時,通常會把設定寫在appsettings.json裡面,但是不同的開發環境會有不同的設定值(例如:檔案產出路徑…etc)。.Net預設會使用appsettings.json這個檔案的設定值,但如果我們有不同的組態設定檔時(例如:DEV. SIT. UAT. PRD)。我們就要分別先新增appsettings.DEV.json, appsettings.SIT.json,appsettings.UAT.json,appsettings.PRD.json,其中的DEV.SIT.UAT會對應到不同的環境變數(appsettings.{環境變數}.json),有了不同環境的設定檔後,下面會來教大家要如何在本機開發環境切換不同的設定檔來進行測試。

...繼續閱讀 »

從無到有建立一個前後端分離的新專案(Angular + .Net Core WebAPI + PostgreSQL)

最近工作剛好有個自己從無到有建置一個專案的機會,自己也是第一次從無到有的自己建置一個專案,機會難得,紀錄一下整個過程,大致會有下列幾個主要步驟:

  1. 建立後端.Net Core WebAPI新專案
  2. 建立Angular新專案,並安裝Angular Material & Bootstrap
  3. 建立資料(Repository)層
  4. 後端API權限設定
  5. Angular呼叫後端WebAPI & CORS處理
...繼續閱讀 »

.Net Core WebAPI 傳值到後端Controller的方法

網頁功能最常用的就是資料間的傳遞,不管事表單資料傳送到後台,或者是輸入查詢資料後,由後端DB回傳資料。這之間都少不了傳輸資料到後台。
在以前MVC的時候,可以透過Razor語法的HTML Helper的BeginForm,在Submit之後,會透過ModelBinding把資料傳到後端Controller。
或是在View直接把整個Form序列化(serilizeArray)後再傳給後端。
現再寫前後分離(Angular + .Net 6 WebAPI)採用WebAPI來開發,剛完成第一個前後分離專案,順便把資料傳送到Controller的方式記錄下來。

...繼續閱讀 »

.Net Core使用FromSqlRaw()直接下SQL撈取資料,並存放到自定義類別

撈取DB資料時,如果是單一資料來源的話,直接使用EF Core是很方便。但更多時候資料來源是多張表單,Join完之後又要Group By,好了之後再把結果拿去Join其他表,或是再做子查詢。像這種時候如果沒有寫成View而是直接用Lambda或是LinQ語法來兜的話,實在是寫得很痛苦。以我來說,只要是查詢語法比較複雜的話我都習慣直接下SQL語法,再用自定義類別來接查詢結果。

記得以前在.Net Framework的時候,做法好像沒有這麼複雜,.Net Core會比較複雜一點,以下是使用PostgreSQL來實作,但使用MS SQL應該也不會差太多。

另外附上以前.Net Core3使用ADO.Net的方式

...繼續閱讀 »

.Net Core使用ADO.Net方式直接下SQL撈取資料,並存放置自定義類別

.Net Core其實也可以使用.Net Framework時期那種ADO.Net的寫法

只是取連線字串的方式有點不同。其他步驟都大同小異

流程大致如下:

1.於建構子注入IConfiguration。之後就可以用實作GetValue取得appsettings.json裡的連線字串

2.下SQL做查詢,並用SqlDataAdapter接資料並塞進DataSet

3.把DataRow跟Model做Mapping。傳到View時就可以用強型別寫Razor語法

 

...繼續閱讀 »