透過程式存取 Windows 網路分享的檔案也算常見需求,但存取身分是個問題。之前我慣用的技巧是用有權限的 AD 網域帳號執行排程存取網路分享,但這招要搬進網站或遇到不同網路分享用不同帳號便會破功。最近遇上類似議題,直覺要得回頭靠 WinAPI Impersonation 解決,之前曾寫過通用元件,...

被一個 XML 讀取問題卡住大半天,寫篇筆記留念。 我有個 Coding4Fun 電子書製作工具,將 XHTML 範本檔案內嵌成資源(Embedded Resource),再用 GetEmbResString() 讀取範本 XML 交給 XDocument.Parse() 轉成 XML 物件操作: ...

網站是否關閉 TLS 1.1/1.0 是近期資安稽查的重點項目。要知道網站的 TLS 開啟狀態,對外網站用 Qualys SSL Labs 的免費線上檢測跑一下立見分曉。 但如果是內部網站,沒對外公開 SSL Labs 網站摸不到無從檢查,怎麼辦? 爬文找到簡便方法 - 用 openssl。 op...

【聲明】本文介紹的做法非正統網頁介面設計方式,純屬民俗療法之個人經驗分享,使用前請先徵詢自己的專案經理、主管或系統分析師意見。 在 ASP.NET WebForm 時代,遇到長時間執行的網頁操作,若不想花時間寫 AJAX 或讓程式複雜化,我會偷懶用 Response.Flush() 簡單實現「即時狀...

SharePoint 有項蠻酷功能,文件庫有個「在 Word/Excel 中編輯」連結,點下去可直接啟動 Word 或 Excel 開啟檔案: 反觀一般在網頁放 .docx、.xlsx 檔案 <a> 連結,都得儲存成本機檔案再開啟,流暢度輸了一截,讓我很不甘心,於是便研究了原理,發現我...

SharePoint 2016 文件庫提供線上編輯或以桌面版 Word/Excel 開啟兩種選項。線上編輯可直接用瀏覽器編輯較方便且支援多人共同修改,但功能及操作流暢度遠不及桌面版,因此要做粗活兒大家多半還是會開本機的 Word/Excel 作業,反正改完會自動儲存同步回伺服器端也很方便。 用本機 ...

分享前陣子用奇妙偵錯技巧解掉好氣又好笑低級茶包的故事。 有個網站功能用 WebAPI 呼叫第三方服務執行作業,平時不常用,某日接到報案回報功能異常,貌似呼叫 WebAPI 失敗,但錯誤訊息模糊看不出哪裡出了問題。該 WebAPI 用類似先前範例教學:使用 ASP.NET MVC 打造 WebAPI ...

先說說應用情境:我有個外部傳入的結構化資料需要套表產生 Word 表格,使用者預先做好範本 Word 檔,調好表格大小、文字對齊、字型顏色樣式... 等等: 理想目標是傳入包含編號、分類、廠牌型號、數量等屬性的物件陣列轉成 Word 表格。 using System.Collections.Gen...

大家應該有遇過 Word 文件最後多出空白頁,依經驗狀況分兩種:第一種很容易對付,純粹是文件結尾存在看不到的換頁符號或是段落,找到它們並刪除就好。參考:刪除空白頁 by 微軟支援;第二種麻煩些,如果你的表格長度剛剛好填滿最後一頁且不會超過,Word 似乎會自動在後面補上一個空白段落(Paragrap...

之前研究 PowerShell 中文編碼問題有個結論 - Windows 10 內建 PowerShell 5.1,在中文版 Windows 預設用 BIG5 編碼,PowerShell 6.0 之後會預設改用 UTF8。因此我一直以為 .\Do-Something.ps1 > output....

Word 有個保護文件功能,可限定只有特定欄位可以編輯,其餘部分唯讀,很適合設計表單供使用者填寫。參考:學會 Word 限制編輯與 Excel 保護工作表,給人填寫表單不出錯 by 電腦玩物 例如以下文件,就只有黃色部分可以填寫:(有人想要這張獎狀嗎?本站的小額捐款帳戶是... ) 但要注意,這種...

跟同事聊到一個需求,異動 Windows 資料夾權限前希望能保留整個資料夾(含子目錄)的原有權限設定,作為異動前後對照或萬一操作失誤的還原參考。 基本上就是記錄檔案總管資料夾內容的安全性頁籤,將各群組或使用者名稱及其對映的完全控制、修改、讀取和執行... 等權限儲存下來,但要用程式完成: 按慣例,...

有個使用 SSH.NET 連線 SFTP 交換檔案的排程,一登入便冒出錯誤 - Channel was closed 並立刻斷線,故意亂給帳號密碼則會出現 Permission denied (password),初步研判帳號密碼沒問題,錯誤另有原因。 爬文查不到明確方向,大致指向連線被伺服器切斷方...

這篇聊聊如何防止測試環境專用的特殊程式邏輯在正式環境被誤用? 實務上測試或開發環境與實際環境常存在難以克服的差異,為方便測試,有時我們需要加入一些測試專用的程式碼,例如:資料轉換、省略權限檢查... 等。 最不花腦筋的做法是直接把測試邏輯加進程式碼,上線前再記得拿掉。但老鳥都知道這樣一定有風險,一旦...

如果你很早開始寫 .NET Core 程式,有個節省寶貴 SSD 空間的小訣竅 - 移除不必要的 .NET Core SDK。 .NET Core/.NET 5 的 Runtime 或 SDK 採 Side-by-Side 安裝,新舊版會並存,新版會換掉 C:\Program Files\dotne...

由前陣子 lock + 共用靜態物件 vs 每次新建物件的效能案例,當新建物件成本不高且方法非 Thread-Safe 時,共用靜態物件加 lock 還不如每次新建物件有效率,該如何決策顯而易見。但如果新建物件的成本很高呢?若建構物件需要耗用大量 CPU 或記憶體,甚至得爭奪有限資源(固定數量的 S...