使用linqtosql-始终加密的更新/插入SQL表中的行中



我正在尝试在SQL Server 2016的Elland Genlyper Plemant上实践。我正在使用现有的应用程序和数据库来执行此操作。

我有一个表[用户],其中我已将"密码"列加密为"确定性"类型。我已经更改了连接字符串,并且能够检索所有行。我为此表创建了存储库。

我试图使用insertonsubmit((和submitchanges((。

但是,每当我尝试插入新行或更新现有行时,我都会得到错误:

msg 206,16级,状态2,第7行操作数类型冲突:varchar是 与varchar(20(不兼容的(encryption_type =( '确定性',encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name = 'cek_auto1',column_encryption_key_database_name ='bro_uat'( collation_name ='latin1_general_bin2'

我已经阅读了使用存储的Procs和参数化解决问题的文章。但是,正如我之前提到的,这是一个现有项目,我已经使用了Linqtosql,并且不想更改代码。如果未加密列,则插入/更新正常!

我错过了一些设置吗?请把我指向正确的方向。

将您的列更改为nvarchar并进行检查。现在,即使存储密码也不是最好的方法,而是存储签名,而是在验证密码时验证该签名。

检查链接是否相同。https://social.msdn.microsoft.com/forums/en-us/77bb69f0-590e-40f5-b5e9-714bf590e008/

最新更新