Ant*_*nek 7 middleware owin openid-connect
有什么方法可以根据请求范围而不是应用程序范围为OpenIdConnectMessage设置RedirectUri属性?
我的应用程序服务于多个域(myapp.com,myapp.fr,..),并且基于域,它确定内容的默认语言.我需要在登录到IdP之后将用户带回到同一个域,因此我需要找到一种方法,如何通过在startup.cs中配置中间件选项来完成每个请求范围而不是应用范围设置RedirectUri.
Ant*_*nek 12
这可以通过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...
}
Run Code Online (Sandbox Code Playgroud)
`
如果您使用的是ResponseType = OpenIdConnectResponseType.CodeIdToken,则需要设置RedirectUri几个通知事件。
在AuthorizationCodeReceived通知中,您可以设置RedirectUrionTokenEndpointRequest以确保在令牌请求中也传递相同的值。
RedirectToIdentityProvider = n =>
{
n.ProtocolMessage.RedirectUri = redirectUrl;
// other settings
}
Run Code Online (Sandbox Code Playgroud)
AuthorizationCodeReceived = n =>
{
n.TokenEndpointRequest.RedirectUri = redirectUrl;
// other settings
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2858 次 |
| 最近记录: |