使用Asp.net标识始终加密的操作数类型冲突问题

时间:2018-04-06 09:14:33

标签: asp.net-identity always-encrypted

我们正在尝试使用Asp.net Identity 2.0的Sql 2016的Always Encrypted功能。我们在PhoneNumber和Email列上设置了Always Encrpted。我们能够加密电话号码,但当我们尝试加密电子邮件列时,帐户控制器中的注册方法失败。当我们尝试注册时,我们得到以下异常:

  

System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()”,   “InnerException”:{“Message”:“发生错误。”,   “ExceptionMessage”:“操作数类型冲突:nvarchar(256)加密   (encryption_type ='DETERMINISTIC',encryption_algorithm_name =   'AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name =   'CEK_Auto1',column_encryption_key_database_name =   'StoreIdentityEF6AE')collat​​ion_name ='Latin1_General_BIN2'是   与varchar“,”ExceptionType“不兼容:   “System.Data.SqlClient.SqlException”,

是否有人遇到此问题并成功解决?寻找使用Asp.net Identity加密客户数据的一些建议

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题。

ASP.NET Identity使用UserStore。 此文件包含一些方法,如FindByNameAsync,它们搜索给定的名称,但在查询中将其转换为ToUpper。

使用ToUpper转换无法查询“始终加密”列。