|
|
|
@ -25,26 +25,39 @@ namespace Microsoft.Extensions.DependencyInjection |
|
|
|
{ |
|
|
|
options.ClaimActions.MapAbpClaimTypes(); |
|
|
|
|
|
|
|
options.Events = new OpenIdConnectEvents |
|
|
|
configureOptions?.Invoke(options); |
|
|
|
|
|
|
|
if(options.Events != null) |
|
|
|
{ |
|
|
|
OnAuthorizationCodeReceived = receivedContext => |
|
|
|
var authorizationCodeReceived = options.Events.OnAuthorizationCodeReceived; |
|
|
|
options.Events.OnAuthorizationCodeReceived = receivedContext => |
|
|
|
{ |
|
|
|
var tenantKey = receivedContext.HttpContext.RequestServices |
|
|
|
.GetRequiredService<IOptionsSnapshot<AbpAspNetCoreMultiTenancyOptions>>().Value.TenantKey; |
|
|
|
AbpOnAuthorizationCodeReceived(receivedContext); |
|
|
|
return authorizationCodeReceived(receivedContext); |
|
|
|
}; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
options.Events = new OpenIdConnectEvents |
|
|
|
{ |
|
|
|
OnAuthorizationCodeReceived = AbpOnAuthorizationCodeReceived |
|
|
|
}; |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
if (receivedContext.HttpContext.Request != null && |
|
|
|
receivedContext.Request.Cookies.ContainsKey(tenantKey)) |
|
|
|
{ |
|
|
|
receivedContext.TokenEndpointRequest.SetParameter(tenantKey, |
|
|
|
receivedContext.Request.Cookies[tenantKey]); |
|
|
|
} |
|
|
|
private static Task AbpOnAuthorizationCodeReceived(AuthorizationCodeReceivedContext receivedContext) |
|
|
|
{ |
|
|
|
var tenantKey = receivedContext.HttpContext.RequestServices |
|
|
|
.GetRequiredService<IOptionsSnapshot<AbpAspNetCoreMultiTenancyOptions>>().Value.TenantKey; |
|
|
|
|
|
|
|
return Task.CompletedTask; |
|
|
|
} |
|
|
|
}; |
|
|
|
if (receivedContext.Request.Cookies.ContainsKey(tenantKey)) |
|
|
|
{ |
|
|
|
receivedContext.TokenEndpointRequest.SetParameter(tenantKey, |
|
|
|
receivedContext.Request.Cookies[tenantKey]); |
|
|
|
} |
|
|
|
|
|
|
|
configureOptions?.Invoke(options); |
|
|
|
}); |
|
|
|
return Task.CompletedTask; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|