ho un problema piuttosto serio con i cookie...

Devo impostare una pagina in modo che un utente, una volta "loggato" venga riconosciuto negli accessi successivi.

Ho pensato, ovviamente, di utilizzare i cookie... ma ho questo problema.

il procedimento è questo:
1. L'utente si "logga" con username e password
2. Se il controllo sulla login va a buon fine assegno all'utente un cookie con questo codice:

Codice PHP:
HttpCookie user_logged = new HttpCookie("user_logged"); 
Response.Cookies["user_logged"]["id"] = Convert.ToString(userDS.Tables[0].Rows[0]["id"]); // memorizzo nella chiave id l'id dell'utente. 
DateTime dt DateTime.Now
TimeSpan ts = new TimeSpan(365,0,0,0); 
user_logged.Expires dt.Add(ts); 
In un primo momento tutto procede regolarmente, ma, quando chiudo il browser il cookie viene perduto. Perchè?!

Ho letto che questo problema si verifica quando non viene settato l'expires del cookie, ma questo non è il mio caso, o almeno non mi sembra, dato che nel codice setto la "vita" del cookie ad un anno.

Del resto, provando un

Codice PHP:
Response.Writeln(user_logged.Expires ); 
mi viene restituito il valore che mi aspetto, ovvero la data ad un anno a partire da oggi.

Qualcuno mi da una mano per favore?