Skip to content

Instantly share code, notes, and snippets.

@maliming
Created March 1, 2023 02:39
Show Gist options
  • Save maliming/b1ea80d68982a5b7064d7df6bafa89f5 to your computer and use it in GitHub Desktop.
Save maliming/b1ea80d68982a5b7064d7df6bafa89f5 to your computer and use it in GitHub Desktop.
ConfigureShareCultureCookies
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.ConfigureShareCultureCookies();
}
app.UseCookiePolicy();
public static class ShareCultureCookiesServiceCollectionExtensions
{
public static IServiceCollection ConfigureShareCultureCookies(this IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
var previousOnAppendCookie = options.OnAppendCookie;
options.OnAppendCookie = cookieContext =>
{
SetCultureCookieDomain(cookieContext, null);
previousOnAppendCookie?.Invoke(cookieContext);
};
var previousOnDeleteCookie = options.OnDeleteCookie;
options.OnDeleteCookie = cookieContext =>
{
SetCultureCookieDomain(null, cookieContext);
previousOnDeleteCookie?.Invoke(cookieContext);
};
});
return services;
}
private static void SetCultureCookieDomain(AppendCookieContext appendCookieContext, DeleteCookieContext deleteCookieContext)
{
if (appendCookieContext != null)
{
// Remove if condition to set domain for all cookies.
if (appendCookieContext.CookieName == CookieRequestCultureProvider.DefaultCookieName)
{
appendCookieContext.CookieOptions.Domain = ".abp.io";
}
}
if (deleteCookieContext != null)
{
// Remove if condition to set domain for all cookies.
if (deleteCookieContext.CookieName == CookieRequestCultureProvider.DefaultCookieName)
{
deleteCookieContext.CookieOptions.Domain = = ".abp.io";
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment