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

时间:2015-03-15 01:17:05

标签: angularjs cookies localization servicestack

我在servicestack catch客户端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() { };
    }
}

不幸的是,在语言服务之后,提出了一个不容错过的先决者过滤器。 谢谢你的建议。

Result

1 个答案:

答案 0 :(得分:1)

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

您可以尝试使用以下命令在每个Cookie上指定域名

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