2012-02-24 16 views
1

パスワードをハッシュした後、データベースに挿入しますが、ここでの問題は試行するたびに ですこのクエリを実行するために、このデータベースaccnt_passに私のテーブルに'string'型をLINQ to SQLのSystem.Data.Linq.Binaryに暗黙的に変換することはできません

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

を発生するバイナリ(50)で、ここに私のコードは、あなたが必要とする、

答えて

6

をハッシュするために

//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を使用しています詐欺に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

+0

私は答えを更新しました。 –

+0

よろしくお願いします。ところで、別のアカウントに同じパスワードを挿入したとき(どうやってテストするのですか)、どちらも異なる値がありますか?入力されたものがデータベースのものと同じであるかどうかはどのようにわかりますか? – user962206

関連する問題