Pages

2010/10/05

[IIS] web.config加解密

web.config是.net project下設定檔,
可以設定DB連結資料, 參照檔案, 或是共用變數...等,
有時會放置一些重要資訊,
雖然web.config在一般的資安下不會被讀取及瀏覽,
但總是會有意外,
M$提供一個方法可透過IIS將web.config的Tag進行加密處理

執行方式:
加密
%windows%\Microsoft.NET\Framework\versionNumber 資料夾\aspnet_regiis.exe -pe "加密的Tag" -app "網頁APP名稱" -prov "RsaProtectedConfigurationProvider"
解密
%windows%\Microsoft.NET\Framework\versionNumber 資料夾\aspnet_regiis.exe -pd "加密的Tag" -app "網頁APP名稱"

參考:
M$ 加密和解密組態區段 From MSDN

2010/05/26

[C#] 可為NULL的型別

之前在使用別人寫的資料庫存取元件時,
發現一個小問題,
在資料庫裡可以讓欄位以NULL存放,
若將資料存放在物件屬性中,
將使用得屬性以初始值儲存, (Ex: int型別的變數會存放0)
但這樣有點不太好用,
和實際資料存放情況不符,
必竟有值和沒值還是不一樣的!
最近在看MSDN的文件時,
發現原來可以宣告型別是可以存放NULL的,
這樣就可以改善之前元件的錯誤.
MSDN: 可為 Null 的型別 (C# 程式設計手冊)

使用方式:
public class TypeIsNullable {
    int? a = null;
}

2009/05/13

[IIS] 錯誤: 無法存取 IIS Metabase

將寫好的.net 網頁放至 IIS伺服器上後,
在瀏覽器中瀏覽該網頁時,
出現 "無法存取 IIS Metabase。" 的錯誤時,
可以由 「命令提示字元」 至 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 下,
執行 "aspnet_regiis -ga ASPNET" 指令,
將 .NET Framework 重新安裝後,
重新啟動IIS,便可從瀏覽器中瀏覽該網頁。

2009/01/07

[SCWCD] POST與GET的不同

GET及POST都是HTML中表單傳送的方式,而兩者有什麼差異呢?
"GET"的特性:
  1. 會顯示於網址列上,如:http://test.web.com/hellowolrd.jsp?name=ping,紅色部分為GET傳遞方式
  2. 有傳遞參數有內容長度限制約255位元
  3. 是冪等(idempotent)的方法,意指多次傳遞參數請求所得到的結果仍時一樣,並不會影響伺服器上的資料內容,(冪等為何物?後面會再加以說明)
"POST"的特性:
  1. 傳遞參數內容放置在傳送資料中,並不會顯示於網址列上
  2. 傳遞參數內容並無限制大小
若資料內容過多或是須要隱藏顯示,建議是"POST"方式傳遞參數。

2008/12/06

[Java] 用Recursion撰寫檔案列表

遞迴Recursion是撰寫程式的小技巧,
讓程式中的方法(function)可自行呼叫方法本身,
這樣的做法可以讓程式內容易讀, 程式內容也會比較簡潔.

2008/11/15

[SQL] Trigger 觸發程序(一)

Trigger 其目的為監控 Table, 當 Table有新增或更新內容時, 可以將已預設儲存的動作予以執行,
故當一個 Table有 insert, update, delete等行為時,
將會自動執行預設的 Trigger行為.

2008/10/17

[Java] "equals()"與"=="

"=="是比較兩參考變數所儲存之值,
若該參考變數為基本資料型態, 會比較其存放之值是否相同, 相同則傳回true, 反之則傳回false.
若該參考變數為物件型態, 會比較該變數是否指向同一物件, 相同則傳回true, 反之則傳回false.

"equals()"為Java類別Object原有之函式, 繼承Object時可依據比較之內容及規則覆寫該方法,
若沒有覆寫equals(), 其比較條件如同"==".
JavaAPI有註明當覆寫equals()時, 必須覆寫hashCode(),
因當兩個物件相等時, 其hash code也必定會相等.
(若沒修改, JVM會隨機產生一組hash code)