Browse Source

Improved AddAbpOpenIdConnect

pull/6913/head
liangshiwei 6 years ago
parent
commit
ffdd6440a3
  1. 43
      framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs

43
framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs

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

Loading…
Cancel
Save