有什么方法可以基于请求范围而不是应用程序范围为OpenIdConnectMessage设置RedirectUri属性?

我的应用程序服务于多个域(myapp.com,myapp.fr,..),并且基于域,它确定内容的默认语言。我需要在通过IdP登录后将用户带回同一个域,因此我需要找到一种方法,该方法是如何为每个请求范围设置RedirectUri,而不是通过在startup.cs中配置中间件选项来设置应用程序范围。

最佳答案

这可以通过Notification事件RedirectToIdentityProvider完成。像这样的东西:

 Notifications = new OpenIdConnectAuthenticationNotifications
                 {
                     RedirectToIdentityProvider = async n =>
                     {
                         n.ProtocolMessage.RedirectUri = n.OwinContext.Request.Uri.Host;
                         n.ProtocolMessage.PostLogoutRedirectUri = n.OwinContext.Request.Uri.Host;
                     },
                     //other notification events...
                 }

`

关于OWIN OpenIdConnect中间件-动态设置RedirectUri,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30645178/

10-09 16:51