有什么方法可以基于请求范围而不是应用程序范围为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/