ServiceStack 无法处理来自子域 angular 客户端的 cookie

ServiceStack cant handle cookie from subdomain angular client

我在 servicestack 捕获客户端 cookie 时遇到问题。 我的服务域:service.domain.com 网站(Angular):www.domain.com 每个都在专用服务器上。 我在 Servicestack 4 中使用 Self-Host 方法进行开发。 这是我的请求过滤器看起来 cookie 比如果注意到设置线程文化。

  this.PreRequestFilters.Add((httpReq, httpResp) =>
        {

            var lang = httpReq.GetCookieValue("Lang");
            if (!string.IsNullOrEmpty(lang))
            {
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);    
            }
            else
            {
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
                httpResp.SetCookie("Lang","en",TimeSpan.FromDays(100));

            }

        });

这是我使用 "Lang" 参数的语言服务。

    public class LanguageService : ServiceStack.Service
{
    public Language Any(LanguageRequest request)
    {
        this.Response.SetCookie("Lang", request.Lang, TimeSpan.FromDays(100));
        return new Language() { };
    }
}

不幸的是,prerequestfilter 在 languageservice 之后发现了问题。 感谢您的建议。

默认情况下,不同子域中的 Cookie 被视为单独的域。

您可以尝试在每个 Cookie 上指定域:

SetConfig(new HostConfig {
    RestrictAllCookiesToDomain = "domain.com",
});