.net 流氓
天下无难事,有志者成之;天下无易事,有恒者得之。

在web开发页面中调用web服务,默认情况下web服务收不到客户端的cookie,如果需要cookie,可以通过给webservice实例的CookieContainer属性赋值。

如下代码片段:

01 static void AddCookie(ref BBS.Services.UpgradeService service)
02
03     CookieContainer cookies = new System.Net.CookieContainer();
04     string cookieDomain = new Uri(service.Url).Host;
05     foreach (string cookieKey in HttpContext.Current.Request.Cookies.AllKeys)
06     {
07         System.Net.Cookie netCookie = new System.Net.Cookie(cookieKey, HttpContext.Current.Request.Cookies[cookieKey].Value, "/", cookieDomain);
08         netCookie.Expires = DateTime.Now.AddMinutes(5);
09         cookies.Add(netCookie);
10     }            
11       
12     service.CookieContainer = cookies;
13 }

需要注意的是必须给netCookie设置过期时间,否则cookie传不到web服务中。

posted on 2011-08-04 20:01  .net 流氓  阅读(356)  评论(0编辑  收藏  举报