2016-05-24_232732
比較注重資安的網站,為了避免使用者被植入木馬紀錄鍵盤輸入的紀錄,所以產生動態鍵盤這個東西,像是下圖所示這個可以讓使用者用滑鼠去點,不用透過鍵盤,然後每一個按鈕每一次的值都不一樣,所以叫做動態鍵盤.首先設定好要有的字元,也準備一個List<string>來存放每次亂數編排後的結果,跑一個迴圈長度就是剛剛設定要有的字元,然後用亂數(要夠亂)去取單一字元( substring ),丟到要存放結果的List<string>,當然要存放前要先檢查這個 List 裡面有沒有重複的字元.
 1: string KBChars = "1234567890abcdefghijklmnopqrstuvwxyz";
 2: List<string> RandomList = new List<string>();
 3:  
 4: for (int i = 0; i <= KBChars.Length - 1; i++)
 5: {
 6: do{
 7: Random rand = new Random(Guid.NewGuid().GetHashCode());
 8: int c = rand.Next(0, KBChars.Length);
 9: string x = KBChars.Substring(c, 1);
 10: } while (RandomList.Contains(x));
 11:  
 12: RandomList.Add(x);
 13: }

baechang 發表在 痞客邦 留言(0) 人氣()

這次遇到的是一個交易系統,客戶那邊負責撰寫stored procedure (SP),雙方在進行第一次測試前,溝通只有靠規格文件,測試一定要到客戶端,因為資料庫是封閉系統,所以在開發階段時,也得對規格文件模擬出客戶端的狀況,但是假的SP不可能完全呈現真實的狀況,所以前幾次到現場測試時,可以用災難來形容,數百個SP,雙方各是幾萬行的程式,抓bug起來真的會哭,當然一定會出現雙方各執一詞的狀況,系統串接一定會這樣,雖然我們有用AOP來注入所有程式,記錄所有的副程式傳入跟傳出值,但是一個商業邏輯的進行,通常不會只呼叫一個SP,舉例來說,進行交易時,要做銀行帳戶檢查,金額檢查等等的.

baechang 發表在 痞客邦 留言(0) 人氣()


套版是我最討厭的事情,枯燥無味沒有技術性,還常常套壞掉,重套.或是設計改了,切版改了,有時候重套還比較快.以往ASP.NET MVC常在宣稱的關注點分離,後來也很少聽到了,以前在WebForm的時代,就已經沒在用Web Control了,使用public的方式,依樣可以傳到前端,當然啦Razor是比較漂亮一點,不過我真的建議大家,長久以來換湯不換藥就是吸引喜歡追求技術的人追著跑,把底子練好,書多看點,千萬別只google找答案抄程式碼,千萬千萬要記得一點,有可能你找到的程式碼,是小朋友寫的,我不是否認小朋友,我依舊等待下一個愛因斯坦的出現,不過機率挺小的.

baechang 發表在 痞客邦 留言(0) 人氣()

這個問題我以往不知道被多少人問過,寫下來以後被問直接來看這篇文章就好了.首先情景是這樣的,後臺系統有個功能叫做問卷管理,而操作的方式就是新增一個問券,最常看到的就是報名或是吃喜帖,就像Google表單,然後新增很多題目,所以會有N個題目,每個題目有M個選項,還有單選或是複選,或是輸入文字.
(我不列出詳細的程式碼,要自己去實做才可以真正體會)
當然會有一個Model 我們先叫做Questions.Model的內容很簡單var Options = List<string>以及Type,每一個問題有多少選項,這個選項又適合種類別,單選或其他等等

baechang 發表在 痞客邦 留言(0) 人氣()

誰都不希望自己跟身邊的人有病痛,但是人生就是這樣,怎樣都會遇的到.
 

baechang 發表在 痞客邦 留言(6) 人氣()

前端與後端的帳號密碼輸入欄位. 究竟要不要選擇enter 就觸發登入.================================
以上是很多系統開發時會遇到的使用者問題,
我們就此分析如下.
通常流程會是, 使用者輸入帳號, 然後輸入密碼, 在密碼欄位按下enter, 觸發登入,

baechang 發表在 痞客邦 留言(0) 人氣()

這問題還蠻常發生,舊版本的Newtonsoft.Json被預設安裝或者因為其他組建的
相關組件是4.5,以至於安裝新版後,或被其他新安裝的組件時附屬裝了新版,則執行時會出現以下錯誤:
 
 

baechang 發表在 痞客邦 留言(0) 人氣()

解決方法:
使用nuget 命令列安裝
Install-Package Microsoft.AspNet.Web.Optimization
 

baechang 發表在 痞客邦 留言(0) 人氣()

一個後台管理系統通常都會有檔案上傳的功能,通常的用意在於前台在某些頁面需要下載相關的檔案,像是word. excel, pdf 等等,做法其實大家都很熟,反正就是丟到一個資料夾,然後資料庫寫好這檔案路徑,連結指到,完畢.問題來了,這個檔案需要被權限管控,簡單來說好了,登入才可以讀取,一定有人會說,那把這個資料夾設定成不能直連,通通用串流的方式讀取在回拋不就好了,不過這個資料夾裡面有包含不用登入也可以讀取的,像是圖檔,當然也可以剛剛的方法判斷然後再串流,可是依照案例考量,圖檔太多,需要被規範的只有特定文件,全部都用串流,那肯定會讓Server的負擔加重,試想,如果一篇文章有十張圖,那不就做十次檔案IO跟串流所以先將這個資料夾通稱為UploadFiles在IIS裡面變成一個應用程式,然後寫一個MVC專案,利用MVC路由,達到我們的需求,

baechang 發表在 痞客邦 留言(0) 人氣()

其實這就跟MVC裡為一些Controller或Action加上需要認證屬性一樣.首先先寫一個屬性(Attribute) 繼承 AuthorizationFilterAttribute複寫 OnAuthorization 這個方法程式的內容就偵測目前的URI是不是走https,不是的話就要回送一個HttpStatusCode.Forbidden回去
 1: public class RequireHttpsAttribute : AuthorizationFilterAttribute
 2: {
 3: public override void OnAuthorization(HttpActionContext actionContext)
 4: {
 5: if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
 6: {
 7: actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
 8: {
 9: ReasonPhrase = "需要SSL連線!"
 10: };
 11: }
 12: else
 13: {
 14: base.OnAuthorization(actionContext);
 15: }
 16: }
 17: }

baechang 發表在 痞客邦 留言(0) 人氣()

其實這就跟MVC裡為一些Controller或Action加上需要認證屬性一樣.首先先寫一個屬性(Attribute) 繼承 AuthorizationFilterAttribute複寫 OnAuthorization 這個方法程式的內容就偵測目前的URI是不是走https,不是的話就要回送一個HttpStatusCode.Forbidden回去
 1: public class RequireHttpsAttribute : AuthorizationFilterAttribute
 2: {
 3: public override void OnAuthorization(HttpActionContext actionContext)
 4: {
 5: if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
 6: {
 7: actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
 8: {
 9: ReasonPhrase = "需要SSL連線!"
 10: };
 11: }
 12: else
 13: {
 14: base.OnAuthorization(actionContext);
 15: }
 16: }
 17: }

baechang 發表在 痞客邦 留言(0) 人氣()

一個後台管理系統通常都會有檔案上傳的功能,通常的用意在於前台在某些頁面需要下載相關的檔案,像是word. excel, pdf 等等,做法其實大家都很熟,反正就是丟到一個資料夾,然後資料庫寫好這檔案路徑,連結指到,完畢.問題來了,這個檔案需要被權限管控,簡單來說好了,登入才可以讀取,一定有人會說,那把這個資料夾設定成不能直連,通通用串流的方式讀取在回拋不就好了,不過這個資料夾裡面有包含不用登入也可以讀取的,像是圖檔,當然也可以剛剛的方法判斷然後再串流,可是依照案例考量,圖檔太多,需要被規範的只有特定文件,全部都用串流,那肯定會讓Server的負擔加重,試想,如果一篇文章有十張圖,那不就做十次檔案IO跟串流所以先將這個資料夾通稱為UploadFiles在IIS裡面變成一個應用程式,然後寫一個MVC專案,利用MVC路由,達到我們的需求,

baechang 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。