發表文章

目前顯示的是有「SQL」標籤的文章

ASP.NET Membership 重置密碼

ASP.NET 的使用者密碼有 加密 以及 安全性問題 兩道防護,所以如果使用者忘記密碼,同時也忘記安全性問題的解答,那 MIS 也神仙難救了 (註 1)。 通常使用者在註冊的時候會被要求輸入 明碼的 Password ,然後系統會隨機產生一個 密錀 Salt ,經過 MD5Sum  的運算產生 暗碼的 Password 。最後會將 Salt 與暗碼的 Password 存入資料庫,因為 MD5Sum 的運算是單向不可逆的 (註 2),所以即使駭客取得暗碼的 Password,也無法反推出原本的 Password。 同時為了讓使用者忘記密碼時,可以自行取回密碼,所以有了 安全性問題與解答 ,其中安全性問題是用來提示的,而安全性解答則與 Password 相同的方式,使用 同一個密錀 Salt  加密後,存入資料庫。因此當使用者忘記密碼時,會收到安全性問題的提示,然後被要求提供解答,如果解答不正確,當然就無法取回密碼了 (因為 MIS 也看不到問題的解答啊 ...)

DataView.RowFilter 的用途

這個屬性可以拿來過濾資料,就好像 SQL WHERE 子句一樣 例如想取出 LastName 欄位為 Smith 的資料: DataView.RowFilter = "LastName = 'Smith'"; 但是要如何取出欄位內容為 Null 的資料? 可以用 DataView.RowFilter = "LastName Is Null"; 或 DataView.RowFilter = "IsNull(LastName, '') = ''"; 如果是數字欄位則用 DataView.RowFilter = "IsNull(Price, 0) = 0"; 其中 IsNull 是 SQL 函數,若第一個參數所代表的欄位內容為 Null,則傳回第二個參數所替代的值 參考: DataView.RowFilter 屬性 How do I test for a null value in DataView.RowFilter? ISNULL (Transact-SQL)