生活随笔
收集整理的這篇文章主要介紹了
【Ids4实战】深究配置——用户信息操作篇
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
(此花無日不春風(fēng))
其實(shí)IdentityServer4的小項(xiàng)目已經(jīng)基本完結(jié)了,但是我總感覺還是有很多東西沒有深入挖掘和研究的,這不,二群里有小伙伴問到了一個(gè)常見的問題,因?yàn)槲胰ツ甓家姷搅?#xff0c;一直沒有想過去解決它,花了半個(gè)小時(shí)研究代碼和搜索資料后,基本解決了,分享出來,讓更多的人了解,這是一個(gè)小品文,不會(huì)講原理,一筆帶過,就說說如何操作即可。
1、問題的由來
其實(shí)這個(gè)問題很簡(jiǎn)單,我相信任何做過Ids4授權(quán)認(rèn)證的都應(yīng)該遇到過,其實(shí)準(zhǔn)確來說是用過微軟官方Identity類庫的應(yīng)該遇到過,就是注冊(cè)的時(shí)候,提示強(qiáng)密碼策略,奇煩:
相信你一看就能明白,官方默認(rèn)的密碼是強(qiáng)密碼策略,要英文,數(shù)字,大小寫,特殊符號(hào),而且昵稱、姓名,還只能是字母和數(shù)據(jù),怎么看就不舒服,雖然我也一直堅(jiān)持了很長(zhǎng)時(shí)間,那有沒有辦法修改下呢,還真的有。
其實(shí)好的框架就是這樣的,有限制就會(huì)有配置,這才是好的框架,那關(guān)鍵是如何修改這個(gè)配置,其實(shí)很簡(jiǎn)單,這里有兩種方案,你任意使用即可。
2、如何修改默認(rèn)配置
1、AddIdentity 內(nèi)配置
我就直接上代碼了,都有注釋:
services.AddIdentity<ApplicationUser, ApplicationRole>(options =>{options.User = new UserOptions{RequireUniqueEmail = true, //要求Email唯一AllowedUserNameCharacters = null //允許的用戶名字符,null表示不限制};options.Password = new PasswordOptions{RequiredLength = 8, //要求密碼最小長(zhǎng)度,默認(rèn)是 6 個(gè)字符RequireDigit = true, //要求有數(shù)字RequiredUniqueChars = 3, //要求至少要出現(xiàn)的字母數(shù)RequireLowercase = true, //要求小寫字母RequireNonAlphanumeric = false, //要求特殊字符RequireUppercase = false //要求大寫字母};options.Lockout = new LockoutOptions{AllowedForNewUsers = true, // 新用戶鎖定賬戶DefaultLockoutTimeSpan = TimeSpan.FromHours(1), //鎖定時(shí)長(zhǎng),默認(rèn)是 5 分鐘MaxFailedAccessAttempts = 3 //登錄錯(cuò)誤最大嘗試次數(shù),默認(rèn) 5 次};options.SignIn = new SignInOptions{RequireConfirmedEmail = true, //要求激活郵箱RequireConfirmedPhoneNumber = true //要求激活手機(jī)號(hào)};options.ClaimsIdentity = new ClaimsIdentityOptions{// 這里都是修改相應(yīng)的Cliams聲明的RoleClaimType = "IdentityRole",UserIdClaimType = "IdentityId",SecurityStampClaimType = "SecurityStamp",UserNameClaimType = "IdentityName"};}).AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();
你要是看不懂,那可就是真的底子太薄了,需要惡補(bǔ)了。
我現(xiàn)在是有以下幾個(gè)規(guī)則:
1、不對(duì)用戶名進(jìn)行限制,可以是中文;
2、密碼只需要小寫英文和數(shù)字即可;
3、長(zhǎng)度至少是八位;
其他的,我就放開了,這樣比較人性化一點(diǎn),當(dāng)然,如果你感覺這么配置不好看,也可以用這種方案。
2、單獨(dú)配置
具體的我就不解釋了,和上邊的都一樣,只不過是單獨(dú)拎出來了:
services.Configure<IdentityOptions>(options =>{options.Password.RequireDigit = false;options.Password.RequireLowercase = false;options.Password.RequireNonAlphanumeric = false;options.Password.RequireUppercase = false;options.SignIn.RequireConfirmedEmail = false;options.SignIn.RequireConfirmedPhoneNumber = false;options.User.AllowedUserNameCharacters = null;});
3、結(jié)果展示
效果還是很明顯的,最后也是注冊(cè)成功:
(登錄頁)
(昵稱顯示)
當(dāng)然,這只是冰山一角,還有很多很多的問題需要挖掘,比如:
1、注冊(cè)的時(shí)候,可以不用密碼加密么,或者自定義加密;
2、完整的修改密碼流程是什么;
3、如何添加第三方的登錄方式;
等等等等。
未來還是有很多路要走,加油!
總結(jié)
以上是生活随笔為你收集整理的【Ids4实战】深究配置——用户信息操作篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。