Always Encrypted with Asp.net Identity 的操作数类型冲突问题

Operand type clash issue with Always Encrypted with Asp.net Identity

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

System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()", "InnerException": { "Message": "An error has occurred.", "ExceptionMessage": "Operand type clash: nvarchar(256) encrypted with (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') collation_name = 'Latin1_General_BIN2' is incompatible with varchar", "ExceptionType": "System.Data.SqlClient.SqlException",

有没有人遇到过这个问题并成功解决了?寻找一些使用 Asp.net Identity

加密客户数据的建议

我的问题已经解决了。

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

无法使用 ToUpper 转换查询 Always Encrypted 列。