jac*_*per 17 asp.net-identity asp.net-core-mvc asp.net-core-identity
我正在尝试为MongoDB创建IUserLoginStore的自定义实现,我在使用时注意到了
UserManager<ApplicationUser>
Run Code Online (Sandbox Code Playgroud)
用这个方法
var userResult = await _userManager.CreateAsync(user);
Run Code Online (Sandbox Code Playgroud)
它经历了实施
GetUserNameAsync
FindByNameAsync
SetNormalizedUserNameAsync
GetUserIdAsync
Run Code Online (Sandbox Code Playgroud)
我想澄清两个问题:
拥有NormalizedUsername和UserName的目的是什么?唯一的区别是我能注意到normalizedUserName是大写的.
我只使用我的实现来存储来自外部登录(Google plus)的用户,有没有办法我可以省略用户名和NormilizedUserName,因为基本上,我在这三个领域使用电子邮件,我感觉我复制数据对我来说没有任何意义.
任何建议?
blo*_*art 17
1)标准化会阻止人们注册只在字母大小写方面不同的用户名.
2)否 - 这些字段是基本数据模型的一部分.
Dmi*_*try 14
FindByNameAsync 应该通过u.Name搜索不区分大小写(你相信你的数据库设置吗?)GetNormalizedUserNameAsync 应该返回user.Name.ToUpperCase()SetNormalizedUserNameAsync 什么都不做请注意2.1可以跳过nameDB中列的任何索引并损害应用程序的性能(再次检查数据库).或导致"客户端"执行(并再次,显着损害性能).取决于您的实施.
我User仅在内部企业系统中使用此类"最小化" 类,该系统仅使用特定OAuth提供程序并仅接受来自指定域(Google Apps)的用户.这个系统不会按用户名执行任何搜索,我安全地使用NotImplementedException了许多方法.
| 归档时间: |
|
| 查看次数: |
7547 次 |
| 最近记录: |