2013-10-18 42 views
1

我試圖共享服務器和客戶端之間的cookie(angularjs,javascript),我想出它的唯一方法是通過設置HttpOnly =假,當我使用時SS在service.RequestContext.Get();它似乎不管我嘗試設置cookie的值是什麼,該值始終將設置爲httpOnly = true。IHttpResponse通過RequestContext沒有設置HttpOnly = false在一個cookie

如果我使用舊的HttpContext.Current.Response.Cookies.Add寫入cookie ok,但對我來說這不是一個選項,因爲我更喜歡使用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); 
      } 

的問題是,該標誌isn't工作,因爲I'm通過accesing的IHttpResponse的RequestContext,有另一種方式做它?

回答

1

ServiceStack中有一個配置選項,可讓您控制Cookie的此設置。嘗試設置:

Config.AllowNonHttpOnlyCookies = true; 
+0

工作就像一個魅力!謝謝! –