我有兩個問題:訪問SignInMessage與緩存在identityserver3 UserService.GetProfileDataAsync
1. 我們已經實施的IdSrv3是多租戶,至少在一定程度上。實質上,我們有很多環境,目前我們需要一個IdSrv3來爲他們提供服務。我正在使用SignInMessage.Tenant
來區分它們,並且在我的自定義用戶服務的AuthenticateLocalAsync
方法中正常工作。但是我無法在GetProfileDataAsync
方法中執行此操作。我注射OwinEnvironmentService
到我的用戶服務的構造和使用,以獲得SignInMessage
並從訪問租戶,但是這始終是空的,即
UserService:
private readonly OwinEnvironmentService _env;
public UserService(OwinEnvironmentService env)
{
_env = env;
}
public Task GetProfileDataAsync(ProfileDataRequestContext context)
{
var signInMessage = _env.Environment.GetSignInMessage();
...
}
有沒有什麼辦法讓在SignInMessage
租客?
2. 聲明緩存又如何工作?在我的啓動,我創造我的userservice並設置緩存持續時間,即:
factory.UserService = new Registration<IUserService, UserService>();
factory.ConfigureUserServiceCache(TimeSpan.FromHours(12));
但我怎麼加我用戶聲明?我是否需要做任何事情來向AuthenticateLocalAsyn
中的緩存添加聲明?如何訪問GetProfileDataAsync
中的緩存索賠?
謝謝,我已經使主題環境獨特,它工作正常。另外我可以在日誌中看到用戶信息上的緩存 – Manjhari