我的 Git 指令小抄
趁著連假啃完龍哥大作「為你自己學 Git」,拖了多年蹲完 Git 馬步,換來了卻一椿心事的輕鬆。 從今天起,我再也不必擔心因「開發老鳥不會 Git Squash 合併 Commit」的祕密敗露被江湖人恥笑了,哈哈哈哈。(謎:擔心半天結果自己說出來?) (背後有段故事:之前在 Github 送過一個... Read More
View Article小技巧 - JSON 免定義物件 LINQ 操作
同事問到,由某 WebAPI 接回 JSON 格式的多筆資料,是否一定要定義強型別物件並搭配 JsonConvert.DeserializeObject<T[]> 才能用 LINQ 進行查詢整理? 答案是不用,有更省事的寫法。 如果只打算取用一兩欄位,且接入後會馬上轉成 Dictiona... Read More
View ArticleASP.NET WebAPI 2 整合 NSwag
前陣子介紹過用 Swashbuckle 為 ASP.NET WebAPI 產生 Swagger/OpenAPI 文件,可自動產生 Swagger UI 線上說明及測試介面,再配合 NSwag Studio 等工具自動產生客戶端,開發體驗不輸 WCF/Web Service。 但後來發現一件事,Swa... Read More
View ArticleASP.NET WebAPI 2 - 使用 POST Body 傳送多參數(NSwag 版)
前篇文章實踐以 NSwag 取代 Swashbuckle 為 ASP.NET WebAPI 產生 Swagger 文件及 Swagger UI 線上測試介面的第一步。接著面對之前 Swashbuckle 遇過的老問題 - 如何改以 POST Body 方式傳遞參數,以避免 Query String ... Read More
View Article台灣首家線上中文編碼解析上線啦~
早年做專案時為了快速分析中文編碼問題,我寫了一個 Windows Form 小工具,在部落格分享之後收到讀者回饋,陸續改版幾次增加功能並命名為中文編譯解析工具,十多年來是我處理中文編碼疑難時的順手兵器。 2006-12-17 KB-Unicode編碼解析小工具 2007-01-03 中文編碼解析工... Read More
View Article電子計算機液晶螢幕黑斑修復
故事從 FB 這則貼文說起: 無意翻出當年伴我攀登高業三角點的老計算機,液晶顯示器中央出現超大黑斑,Google 爬到文章有人遇過完全相同的症狀,並神奇地靠換掉反射膜修復,但要買材料,要去膜除膠,工程浩大,幾百塊的小東西,使用機率不高,紀念價值有限,不值得動手,便拍了照片在黑暗後花園貼文向它告別。... Read More
View ArticleEF4 ExecuteStoreQuery SQL Injection 驚魂記
臨下班接到通報,有段 Entity Framework 4 的老程式被偵測出有 SQL Injection 漏洞: var res = ctx.ExecuteStoreQuery<Player>( "SELECT * FROM Player WHERE UserName... Read More
View ArticleJenkins 筆記 1 - 安裝與環境設定
開始研究 Jenkins,計劃用它取代 TFS Build Service 解決工作專案的建置部署需求。 TFS Build Service 跟 Visual Studio 整合度極佳,但有幾個缺點: 每個 TFS Build Controller/Build Server 只能處理一個 TFS ... Read More
View Article【茶包射手日記】Windows Server 2016 網路分享無法遠端存取
手邊有幾台新安裝測試機器,初次使用 Windows Server 2016 被笨問題卡住。 在設定網路分享資料夾後,卻一直無法從遠端連上,觀察現象如下: 從網路分享所在本機存取 \\machineName\shareName 正常,但從遠端 \\192.168.1.100(其對外IP)\share... Read More
View ArticleJenkins 筆記 2 - 術語與基本概念補充
這篇整理我初學 Jenkins 過程遇到的幾個術語及概念,後續會應用到。 Pipeline Jenkins Piepline 隨 Jenkins 2.0 推出,是一組實踐連續交付(Continuous Delivery)的 Plugin,超過 10 個相關套件。延伸閱讀:為什麼我們需要 CI / C... Read More
View ArticleJenkins 筆記 3 - TFS 設定與 MSBuild 安裝
本篇整理 Jenkins 由 TFS 取回程式編譯的一些設定細節。 開始前先要將用來登入 TFS 伺服器的 AD 帳號新增為 Credential,新增位置如下圖: Kind 為「Username with password」,Scope 有 System 與 Global 兩種選擇,System... Read More
View Article【茶包射手日記】IIS 每天早上無法登入疑案
蠻奇妙的一次射茶包經驗。 執行一項測試排程的移機作業,檢查過程注意到另一個相關測試台排程已連續三天(4/17-4/19)不正常。向同事提起,同事說該排程所依賴的某個 IIS 最近很不穩定,已經好幾天一早上班時是壞的,瀏覽器一直彈出帳號密碼對話框,輸入正確帳密也無法登入,直到 IISRESET 才恢復... Read More
View Article2019 三重馬
三重馬第四回。(2015 2017 2018) 達成 60 馬里程碑,近半年平日練跑距離也拉大到 10K 起跳,跑馬心情大不相同。從初馬如赴刑場,菜鳥如上戰場,中鳥如進考場,到如今跑馬已如逛市場。 腳酸難免,但不再戰戰兢兢,心情好就拼個成績,覺得累就慢慢來,靠著平日累積,反正連滾帶爬都能完賽,有什麼... Read More
View ArticleWeb API 2 筆記 - 資料物件驗證
介紹 ASP.NET WebAPI 2 驗證傳入參數資料物件的簡便做法。 假設我們有個需求,要寫一個 Web API 方法集中蒐集排程作業執行 Log 寫入資料庫,為符合 Schema 要求,接收參數時需檢查 NOT NULL 欄位必須有值,字串長度不能超過欄位 NVARCHAR(N) 長度... ... Read More
View ArticleWeb API 2 筆記 - HttpGet 資料繫結與驗證
前篇文章已介紹過 ASP.NET Web API 2 資料驗證做法,這篇會談談我在處理 TaskLogController 時的衍生需求 - 支援 GET 方式呼叫 Web API,用一行 URL 傳參數完成寫入 Log 動作。 首先聲明,使用 GET 方式更新有違一般資安原則(延伸閱讀:隱含殺機的... Read More
View ArticleASP.NET 簡史
在 DotNetCurry 網站看到精彩的系列文章,細數了 ASP.NET 的一路發展。讀著讀著,勾起一堆塵封多年的回憶,滿是感動... The History of ASP.NET – Part I The History of ASP.NET – Part II (ASP.NET MVC). ... Read More
View ArticleASP.NET WebForm 與 MVC 共用 Form 驗證
我遇到的情境是這樣的:某歷史悠久的網站由新舊程式組成,早期開發是用 WebForm,後期擴充功能時另開了 MVC 專案,所以站台上有兩個 Web Application,一個是 Web Site,一個是 MVC。 架構潔癖者看到這裡可能就怒了,把系統搞成這樣是要怎麼維護? 是不會繼續用 WebFor... Read More
View ArticleMachineKey 外流有多可怕? 淺談 ASP.NET Form 驗證之破解與防護
昨天說到 WebForm 與 MVC 共用 Form 驗證身分,關鍵在於共用 Machine Key。 Machine Key 是 ASP.NET 重要的安全基礎,被拿來處理 ViewState、Form 身分驗證/Membership Cookie、Out-Of-Process Session、M... Read More
View ArticleASP.NET MVC 網站之靜態檔案與 WebForm 授權控制
在 ASP.NET MVC 網站觀察到奇特行為:.css、.js 等靜態檔案可匿名存取,存取 MVC Action 則要登入,有趣的是網站上有個 HttpHandler (.axd) 也能匿名存取。 一時之間有點迷惑,花了點時間重現狀況,找出原理解惑。 使用 Visual Studio 建立新 AS... Read More
View ArticleHtml Download Attribute 行為實驗
分享最近踩到的小雷一枚。 展示程式(DownloadTest.aspx)如下: <%@Page Language="C#"%> <script runat="server"> void Page_Load(object sender, ... Read More
View Article