ASP.NET MVC架構下如何防範表單偽造(CSRF)

首先,何謂CSRF?CSRF是Cross-Site Request Forgery的簡稱,簡單來說就是惡意駭客為竊取資訊用script創造成的假表單。詳情請參考OWASP官網解說:Cross-Site_Request_Forgery

那麼在ASP.NET MVC底下,其實要防範這個問題相當簡單,只要在Razor Ajax.BeginForm或是Html.BeginForm,甚至是一般傳統Html

內加上@Html.AntiForgeryToken,就會在表單Submit的時候產生2個相同值的Token。 繼續閱讀 “ASP.NET MVC架構下如何防範表單偽造(CSRF)”

[C#]The returned value of DataContext.ExecuteCommand when executing stored procedures.

In our project, SQL scripts(CRUD in specific) are executed using the class “DataContext” in combination with LinqToSQL,
and then of course, when the method “ExecuteCommand” is invoked, the returned value indicates the rows updated.

When the SQL command executed is simply just an INSERT/UPDATE/DELETE, the result is as obvious as ever.
But when it comes to stored procedures, things might not be that simple. 繼續閱讀 “[C#]The returned value of DataContext.ExecuteCommand when executing stored procedures.”

初探 ASP.NET MVC 多國語系(i18n)|#1: 觀念與基本做法

前言

猶記得第一次聽到 i18n 這個詞是在公司新人訓練 Java 課程的部分,當時聽著影片中講師不時提到的 i18n,我就一直在想這個「艾斯‧巴恩」到底是什麼東西,是一個機制?還是一個第三方套件?或是一個功能?一直到課程結束我也只模模糊糊地知道艾斯巴恩原來是 i18n,而這是個跟網站多國語系化有關的東西。

在新人訓練結束後下到專案將滿一年之際,專案出現了多國語系(嚴格來說是兩國語系:繁體中文跟英文)的需求,而我則被派任處理這個部分,也因此累積了一點心得,就在此與大家分享一番,話不多說了,咱們進入正文吧!

繼續閱讀 “初探 ASP.NET MVC 多國語系(i18n)|#1: 觀念與基本做法”

[C#] File.Create 鎖定檔案

由於很久沒有寫Stream.IO 的相關程式,剛好今天有一個需求是Parser 文件,「判斷檔案是否存在,不存在就建立新的檔案,存在就寫檔」,結果碰到一個寫檔入門常見的錯誤,

類型 ‘System.IO.IOException’ 的未處理例外狀況發生於 mscorlib.dll 其他資訊: 由於另一個處理序正在使用檔案 ‘C:\Users\Administrator\Desktop\xxxx.xml’,所以無法存取該檔案。

繼續閱讀 “[C#] File.Create 鎖定檔案”