我想将 AlwaysEncrypted 应用于AspNetUsers表中的UserName列。
我有一个数据库播种器,旨在插入一些不存在的用户。当我第一次运行应用程序并点击登录时,播种器执行,但它在这一行崩溃:
var result = this.userManager.Create(user, this.pass);
带有以下错误消息:
"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 = 'TestDb') is incompatible with varchar\r\nStatement(s) could not be prepared."
结果通常不会在该行崩溃,而是会填充类似于Username is already taken的错误
如果我完全注释掉播种机,它会停在这一行而不返回任何内容:
var user = await userManager.FindAsync(model.UserName, model.Password);
为了让AlwaysEncrypted与Identity 的 UserName一起工作,我需要更改什么吗?