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",
});
我在 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",
});