本文版權(quán)歸博客園和作者吳雙本人共同所有,轉(zhuǎn)載和爬蟲請注明原文地址  www.cnblogs.com/tdws

   相信了解了MS Identity認(rèn)證體系的一定知道UserManager的作用,他是整個體系中的調(diào)度者,他定義了一套用戶行為來幫助我們管理用戶信息,角色信息,處理密碼等。而其實(shí)現(xiàn)則在UserStore當(dāng)中,我們可以實(shí)現(xiàn)其為我們定義的比如IUserStore,IUserPasswordStore,IRoleStore等等. 我們可以基于一整套用戶行為,自定義自己的用戶信息和數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)存儲。那么關(guān)于Password的Hasher,MS依然為我們提供了完整的行為定義,也由UserManager來調(diào)度。比如

1 UserManager.PasswordHasher.HashPassword(password)
PasswordHasher在UserManager接口中是這樣定義的:
萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

我原本對其默認(rèn)實(shí)現(xiàn)是沒有興趣的,出于獨(dú)立多個應(yīng)用的登陸認(rèn)證的目的,所以需要一個獨(dú)立的用戶認(rèn)證項(xiàng)目來作為認(rèn)證服務(wù),其僅生產(chǎn)token,認(rèn)證成功后,用戶的HTTP Request Header的Authorization帶著 token來訪問應(yīng)用服務(wù)器上的各種資源。

就是因?yàn)檫@樣的原因,在多個應(yīng)用的密碼認(rèn)證上出現(xiàn)了這樣一個問題:

比如應(yīng)用A采用了實(shí)現(xiàn)IPasswordHasher來自定義加密方式——MD5+salt的形式,而應(yīng)用B則采用了Identity默認(rèn)的Pa