2012-02-24 97 views
1

我已經散列了密碼,然後我將它插入到數據庫中,但是這裏的問題在於每次嘗試時都會出現 要做到這一點查詢發生這種情況不能隱式地將類型「字符串」轉換爲「LINQ to SQL中的System.Data.Linq.Binary」

Cannot implicitly convert type 'string' to 'System.Data.Linq.Binary' 

在我的數據庫accnt_pass表是二進制(50),這裏是我的代碼

//Instantiate a new Hasher Object 
var hasher = new Hasher(); 

hasher.SaltSize = 16; 

//Encrypts The password 
var encryptedPassword = hasher.Encrypt(txtPass.Text); 

Account newUser = new Account(); 

newUser.accnt_User = txtUser.Text; 
newUser.accnt_Position = txtPosition.Text; 
newUser.accnt_Pass = encryptedPassword; 

,我使用Encrypto哈希計算,

回答

6

您需要去騙如果您的sql列是二進制類型,則將字符串encryptedPassword轉換爲字節數組。 因此,而不是行

newUser.accnt_Pass = encryptedPassword; 

System.Text.UTF8Encoding encoding=new System.Text.UTF8Encoding(); 
newUser.accnt_Pass = new System.Data.Linq.Binary(encoding.GetBytes(encryptedPassword)); 
+0

後R呢?我可以直接將它插入我的桌子上嗎? – user962206 2012-02-24 19:29:50

+0

我更新了答案。 – 2012-02-24 19:35:13

+0

好的,謝謝,順便說一下,當我在不同的帳戶(測試puposes)上插入相同的密碼時,他們都有不同的值?我如何知道輸入的數據是否與數據庫中的輸入相同? – user962206 2012-02-24 19:38:47

相關問題