日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Ids4实战】深究配置——用户信息操作篇

發(fā)布時(shí)間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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ò),歡迎將生活随笔推薦給好友。