因此,IResourceOwnerPasswordValidator應該取代IUserService。 在舊版本IdentityServer3我能做到以下幾點:IdentityServer4和ResourceOwnerPasswordValidator動態連接字符串
factory.UserService = new Registration<IUserService>(typeof(MyIdentityUserService));
factory.Register(new Registration<IUserRepository>(userRepository));
其通過與適當的連接字符串的自定義userRepository對象。 現在在IdentityServer4中,我需要連接到正確的Portal數據庫,以便ID4根據正確的門戶網站數據庫對用戶進行身份驗證。
如果我可以像下面那樣將一個參數傳遞給ResourceOwnerPasswordValidator類的構造函數,那麼這將很好,但這對於ASP.NET CORE是不可能的。
public ResourceOwnerPasswordValidator(string MyConnString)
{
_connstring = MyConnString;
}
這不能工作,因爲ConfigurationService註冊這個類而不能傳遞值。這是有道理的,因爲這個註冊過程在管道建立之前就開始了。如何動態地將連接字符串傳遞給ResourceOwnerPasswordValidator類?我正在嘗試對打電話的門戶進行身份驗證。在ID3中,我可以通過使用acr_value來做到這一點。
我想讓ID4作爲MultiTenant身份驗證服務器進行身份驗證。