1

我正在尝试在服务器和客户端(angularjs,javascript)之间共享一个cookie,我想这样做的唯一方法是在我使用service.RequestContext.Get()时在SS中设置HttpOnly = false ; 似乎无论我尝试设置 cookie 的值是什么,该值都将始终设置为 httpOnly = true。

如果我使用旧的HttpContext.Current.Response.Cookies.Add写入 cookie 可以,但对我来说这不是一个选项,因为我更喜欢使用 IHttpResponse。

请看一下代码:

public override object Logout(IServiceBase service, ServiceStack.ServiceInterface.Auth.Auth request)
            { 
               var resp =service.RequestContext.Get<IHttpResponse>();
               resp.Cookies.AddCookie(new Cookie { Name = "r", Path = "/", Value = "from server", HttpOnly = false, Discard = false, Expires = DateTime.Now.AddHours(12) });
               return base.Logout(service, request);
            }

问题是,该标志不起作用,因为我正在通过RequestContext 访问IHttpResponse,还有其他方法吗?

4

1 回答 1

1

ServiceStack 中有一个配置选项,可让您控制 Cookie 的此设置。尝试设置:

Config.AllowNonHttpOnlyCookies = true;
于 2013-10-18T15:21:28.557 回答