services.Configure<IdentityOptions>(options =>{options.Password.RequiredLength = 6;options.Password.RequiredUniqueChars = 3;options.Password.RequireNonAlphanumeric = false;options.Password.RequireLowercase = false;options.Password.RequireUppercase = false;});也可以在添加身份服务时执行此操作,代码如下 。
services.AddIdentity<IdentityUser,IdentityRole>(options =>{options.Password.RequiredLength = 6;options.Password.RequiredUniqueChars = 3;options.Password.RequireNonAlphanumeric = false;}).AddEntityFrameworkStores<AppDbContext>();当然,在这里推荐使用IdentityOptions的形式进行配置,因为它可以作为一个独立服务,而不是嵌套在AddIdentity()方法中 。
IdentityOptions对象中除了Password的配置信息,还有用户、登录、策略等配置信息,我们可以根据不同的场景进行灵活的配置 。
- UserOptions 。
- SignInOptions 。
- LockoutOptions 。
- TokenOptions 。
- StoreOptions 。
- ClaimsIdentityOptions 。
ASP.NET Core默认提供的都是英文提示,我们可以将它们修改为中文 。现在我们创建一个CustomIdentityErrorDescriber的类文件,路径为根目录下创建的CustomerMiddlewares文件夹,然后继承IdentityErrorDescriber服务,添加以下代码 。
public class CustomIdentityErrorDescriber:IdentityErrorDescriber{public override IdentityError DefaultError(){return new IdentityError{Code = nameof(DefaultError),Description = $"发生了未知的故障 。" };}public override IdentityError ConcurrencyFailure(){return new IdentityError{Code = nameof(ConcurrencyFailure),Description = "乐观并发失败,对象已被修改 。" };}public override IdentityError PasswordMismatch(){return new IdentityError{Code = nameof(PasswordMismatch),Description = "密码错误" };}public override IdentityError InvalidToken(){return new IdentityError{Code = nameof(InvalidToken),Description = "无效的令牌." };}public override IdentityError LoginAlreadyAssociated(){return new IdentityError{Code = nameof(LoginAlreadyAssociated),Description = "具有此登录的用户已经存在." };}public override IdentityError InvalidUserName(string userName){return new IdentityError{Code = nameof(InvalidUserName),Description = $"用户名'{userName}'无效,只能包含字母或数字." };}public override IdentityError InvalidEmail(string email){return new IdentityError{Code = nameof(InvalidEmail),Description = $"邮箱'{email}'无效." };}public override IdentityError DuplicateUserName(string userName){return new IdentityError{Code = nameof(DuplicateUserName),Description = $"用户名'{userName}'已被使用." };}public override IdentityError DuplicateEmail(string email){return new IdentityError{Code = nameof(DuplicateEmail),Description = $"邮箱'{email}'已被使用." };}public override IdentityError InvalidRoleName(string role){return new IdentityError{Code = nameof(InvalidRoleName),Description = $"角色名'{role}'无效." };}public override IdentityError DuplicateRoleName(string role){return new IdentityError{Code = nameof(DuplicateRoleName),Description = $"角色名'{role}'已被使用." };}public override IdentityError UserAlreadyHasPassword(){return new IdentityError{Code = nameof(UserAlreadyHasPassword),Description = "该用户已设置了密码." };}public override IdentityError UserLockoutNotEnabled(){return new IdentityError{Code = nameof(UserLockoutNotEnabled),Description = "此用户未启用锁定." };}public override IdentityError UserAlreadyInRole(string role){return new IdentityError{Code = nameof(UserAlreadyInRole),Description = $"用户已关联角色'{role}'." };}public override IdentityError UserNotInRole(string role){return new IdentityError{Code = nameof(UserNotInRole),Description = $"用户未关联角色'{role}'." };}public override IdentityError PasswordTooShort(int length){return new IdentityError{Code = nameof(PasswordTooShort),Description = $"密码必须至少是{length}字符." };}public override IdentityError PasswordRequiresNonAlphanumeric(){return new IdentityError{Code = nameof(PasswordRequiresNonAlphanumeric),Description = "密码必须至少有一个非字母数字字符."};}public override IdentityError PasswordRequiresDigit(){return new IdentityError{Code = nameof(PasswordRequiresDigit),Description = $"密码必须至少有一个数字('0'-'9')." };}public override IdentityError PasswordRequiresUniqueChars(int uniqueChars){return new IdentityError{Code = nameof(PasswordRequiresUniqueChars),Description = $"密码必须使用至少不同的{uniqueChars}字符 。" };}public override IdentityError PasswordRequiresLower(){return new IdentityError{Code = nameof(PasswordRequiresLower),Description = "密码必须至少有一个小写字母('a'-'z')." };}public override IdentityError PasswordRequiresUpper(){return new IdentityError{Code = nameof(PasswordRequiresUpper),Description = "密码必须至少有一个大写字母('A'-'Z')." };}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 孕吐吃啥可以缓解 怀孕吐吃什么可以缓解
- 亚马逊|NBA中从未缺席过季后赛的球员,个个都是传奇,你都知道么
- 英雄传说零之轨迹图文攻略
- 马的鞭很长吗? 马鞭有60cm那么长
- 漫谈Mysql之主从复制
- 正月初一吃饺子这一习俗从哪个朝代开始?
- Win10 Terminal + WSL 2 安装配置指南
- 从Linux源码看Socket的listen及连接队列
- SQL 中为什么经常要加NOLOCK?
- 大学|国内3所“神秘”的大学,入学要签保密协议,毕业后就从事铁饭碗
