如何从WebMethod更改cookie值?

时间:2010-10-28 08:28:29

标签: cookies asp.net

  [WebMethod]
  public static void SetTheme(string theme)
  {
   Guid studentIdentifier = SessionData.LoggedInUser.Identifier;
   Student student = (Student)ItemFactory.GetItem(studentIdentifier);
   student.Theme = theme;
  }

我想在这个WebMethod的末尾更改名为“theme”的cookie。我怎么能做到这一点?必须在此处设置cookie,而不是通过JavaScript。这是一项要求。谢谢

1 个答案:

答案 0 :(得分:6)

您可以访问webMethod中的HttpContext,然后从中获取响应对象。

var response = HttpContext.Current.Response;

HttpResponse对象允许您通过响应访问发送到浏览器的cookie:

if(response.Cookies["theme"]!=null)
  response.Cookies["theme"].Value = myValue;

MSDN documentation很好地解释了它。您也可以使用HttpContext.Current.Request

访问请求cookie