假设我有一个托管在admin.xyz.com
的ASP.NET Core应用程序,我需要为*.xyz.com
设置防伪cookie。我目前正在配置防伪服务,例如:
services.AddAntiforgery(opts =>
{
opts.HeaderName = ANTIFORGERY_HEADER_NAME;
opts.Cookie.Name = ANTIFORGERY_COOKIE_NAME;
});
我可以通过这种方式静态设置域opts.Cookie.Domain = "xyz.com"
,但我正在寻找一种在运行时进行操作的方式,例如:
Domain = string.Join('.', Request.Host.Host.Split('.').Skip(1));
或者在我可以访问HttpContext
对象的地方。我想到了中间件,但我认为它太复杂了。
您知道执行此操作的简单方法吗?预先感谢。
您可以替换CookieBuilder
内的CookieBuilder
并提供您自己的AntiforgeryOptions
实现,以明确设置域值。
类似这样的东西:
AntiforgeryOptions
然后在配置防伪时,使用新的生成器:
Build