通过RequestContext的IHttpResponse没有在cookie中设置HttpOnly = false

时间:2013-10-18 14:28:54

标签: servicestack

我试图在服务器和客户端之间共享一个cookie(angularjs,javascript),我想通过设置HttpOnly = false的唯一方法就是在我使用服务时在SS中.RequestContext.Get(); 似乎无论我尝试设置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 ,还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

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

Config.AllowNonHttpOnlyCookies = true;