我将用户选择的文化存储到用户声明中,并且我有一个自定义的RequestCultureProvider,它读取此值并相应地设置请求文化。
该应用程序将有一个个人资料页面,用户可以在其中更改其偏好(包括文化)。将数据保存到数据库后,我需要默默地重新登录用户以更新其声明。
其他信息:
- 我正在使用带有AspNet Core 2.0和Asp.Net Identity的IdentityServer4
- 我正在将文化加载到OnTokenValidated事件(客户端应用程序)中的声明。它也可以在GetProfileDataAsync(IProfileService)或UserClaimsPrincipalFactory(ASP.NET核心标识)中完成
- 该系统由3个网络应用程序(Idsv4 + app1 + app2)组成。配置文件页面在应用程序应用程序中实现。
- 使用配置了Asp.NET Identity的单个Web应用程序,您可以使用SignInManager中的RefreshSignInAsync方法重新生成用户的应用程序cookie,但是我需要从客户端应用程序(app1& app2)触发此过程,所以没有访问SignInManager。
- 我尝试使用HttpContext.Authentication.ChallengeAsync(“oidc”)HttpContext.Authentication.SignInAsync并且显然调用了身份验证端点但是我无法处理响应并且它在我正在调用的MVC操作中生成无限循环这段代码。
那么,如何使用Idsrv4实现静默重新签名?