title: RIA Services, Forms Authentication and extra cookies
body: <p>I have an Silverlight 4 RIA Services application with custom Forms Authentication. The custom authentication service works like a charm.</p>
  
  <p>The problems is I want to serialize the user object in a cookie which is then sent with each subsequent request.</p>
  
  <p>I create the cookie and add it to the response cookie collection but on the next request the only cookies in the cookie collection are ASPXAUT and ASPX_SESSIONId, of the custom cookie not a trace.</p>
  
  <p>This is the cookie management class:</p>
  
  <pre><code>public class CookieManager:ISessionManager
  {
  
      public object this[string key]
      {
          get
          {
              var context = getCurrentContext();
              var cookie = context.Request.Cookies[key];
              if (cookie == null) return null;
              return deserialize(cookie.Value);
          }
          set
          {
              var context = getCurrentContext();
              string cookieValue = serialize(value);
  
              HttpCookie cookie = new HttpCookie(key, cookieValue);
              cookie.Expires = DateTime.Now.AddDays(10000);
              cookie.HttpOnly = false;
  
              context.Response.Cookies.Remove(key);
              context.Response.Cookies.Add(cookie);
          }
      }
  
      public void Abandon()
      {
          var context = getCurrentContext();
          context.Response.Cookies.Clear();
      }
  
      public void Clear()
      {
          Abandon();
      }
  
      private HttpContext getCurrentContext()
      {
          return HttpContext.Current;
      }
  
      private string serialize(object value)
      {
          MemoryStream stream = new MemoryStream();
  
          BinaryFormatter formatter = new BinaryFormatter();
          formatter.Context = new StreamingContext(StreamingContextStates.Clone);
          formatter.Serialize(stream, value);
  
          StreamReader reader = new StreamReader(stream);
          stream.Position = 0;
  
          string result = reader.ReadToEnd();
          reader.Close();
          stream.Close();
  
          return HttpUtility.UrlEncodeUnicode(result);
      }
  
      public object deserialize(string value)
      {
          value = HttpUtility.UrlDecode(value);
  
          MemoryStream stream = new MemoryStream();
          StreamWriter writer = new StreamWriter(stream);
          writer.Write(value);
  
          BinaryFormatter formatter = new BinaryFormatter();
          return formatter.Deserialize(stream);
  
  
      }
  
  }
  </code></pre>
  
  <p>It reads and saves cookies.</p>
  
  <p>Now my problem is this:</p>
  
  <ol>
  <li>What I need to enable in silverlight or in the ASP.NET (WCF) application in order for extra cookies to be sent with each request along side the authentication cookie.</li>
  </ol>
  
  <p>EDIT:</p>
  
  <p>I've inspected the HTTP request/response stack and those extra cookies are sent from the server with the WCF RIA Services response but not returned by the next service call from the client.</p>