如何在WCF / REST服务中向Response添加多个cookie

时间:2010-03-14 22:21:41

标签: c# wcf cookies

我可以访问WebOperationContext并可以通过这样做添加一个Cookie:

 WebOperationContext.Current.OutgoingResponse.Headers.Add("Set-Cookie: foo_a=bar_a");

但是,如果我多次打电话,例如:

 WebOperationContext.Current.OutgoingResponse.Headers.Add("Set-Cookie: foo_a=bar_a");
 WebOperationContext.Current.OutgoingResponse.Headers.Add("Set-Cookie: foo_b=bar_b");

我的标题中应该有以下内容(2个Cookie):

Set-Cookie: foo_a=bar_a
Set-Cookie: foo_b=bar_b

但是得到:

Set-Cookie: foo_a=bar_a, foo_b=bar_b

如何设置多个Cookie? THX

2 个答案:

答案 0 :(得分:0)

原来可以在一个Set-Cookie:标题行上设置cookie,但是你需要放置一个';' cookie末尾的分号......

 WebOperationContext.Current.OutgoingResponse.Headers.Add("Set-Cookie: foo_a=bar_a;," 
                                                           + foo_b=bar_b;");

然后结果将是:(哪个浏览器认为是2个cookie而不仅仅是1个)

Set-Cookie: foo_a=bar_a;, foo_b=bar_b;
// browser sees this as 2 cookies: `foo_a` & `foo_b`

而不是

Set-Cookie: foo_a=bar_a, foo_b=bar_b
// browser sees this as 1 cookie: `foo_a` with value: `=bar_a, foo_b=bar_b`

答案 1 :(得分:-1)

您可以使用HttpContext.Current.Response.SetCookie代替。