6

I am storing the user selected culture into the user claims and i have a custom RequestCultureProvider that reads this value and set the request culture accordingly.

The application will have a profile page where the user can change his preferences (culture included). After save the data to the database I need to silently re-signin the user in order to update his claims.

Additional info:

  • I'm using IdentityServer4 with AspNet Core 2.0 and Asp.Net Identity
  • I'm loading the culture to the claims in the OnTokenValidated event (client apps). It can also be done in the GetProfileDataAsync (IProfileService) or UserClaimsPrincipalFactory (ASP.NET Core Identity)
  • The system is composed by 3 web apps (Idsv4 + app1 + app2). The profile pages are implemented in the app applications.
  • With a single web app configured with Asp.NET Identity you can use the method RefreshSignInAsync from the SignInManager to regenerates the user's application cookie, however I need to trigger this process from the client apps (app1 & app2), so no access to SignInManager.
  • I tried to use HttpContext.Authentication.ChallengeAsync("oidc") HttpContext.Authentication.SignInAsync and apparently the authenticate endpoint is invoked however I cannot handle the response and it generates a infinite loop in the MVC action where I'm invoking this code.

So, how can I achieve the silently re-signing with Idsrv4?

trailmax
  • 34,305
  • 22
  • 140
  • 234
jdcorr
  • 103
  • 7
  • Possible duplicate of [How to force update custom user claims?](https://stackoverflow.com/questions/35004202/how-to-force-update-custom-user-claims) – Steven Jeuris Jul 30 '18 at 12:16

0 Answers0