发出始终加密的更新表

时间:2018-07-03 08:57:24

标签: c# .net linq-to-sql

我可以将一些带有加密列的新记录插入到我的表中(我使用始终加密功能)。 但是...我无法更新或删除行。

仅举一个例子:tbUtenti表的密码列已加密。该方法在插入中正确运行,但在更新中不正确。

我得到的例外是(从意大利语翻译):

列/变量“ @ p2”,“密码”的密码架构不匹配。列/变量的加密方案为(encryption_type ='RANDOMIZED',encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='BISP_PK',column_encryption_key_database_name ='DEVDB'),而加密类型位于行'1'旁边'DETERMINISTIC')(或更低)。

我的方法如下:

        public static bool SetUtente(tbUtenti ut){try
        {
            DBDesktopDataContext contesto = new DBDesktopDataContext(ConnectionString);
            if (ut != null)
            {
                // update
                tbUtenti utDB = contesto.tbUtentis.Where(u => u.Utente == ut.Utente).FirstOrDefault();
                if (contesto.tbUtentis.Count() > 0 && utDB != null && utDB.Utente == ut.Utente)
                { 
                    utDB.AuthFacebook = ut.AuthFacebook;
                    utDB.AuthGoogle = ut.AuthGoogle;
                    utDB.IsAdmin = ut.IsAdmin;
                    utDB.Password = ut.Password;
                    contesto.SubmitChanges();
                }
                else
                {
                    // insert new row  (THIS WORKS!)
                    contesto.tbUtentis.InsertOnSubmit(ut);
                    contesto.SubmitChanges();
                }
                return true;
            }
            else
                return false;
        }
        catch (Exception ex)
        { ...

0 个答案:

没有答案