Esta mañana vi accidentalmente el siguiente código de fragmento, estaba bastante sorprendido porque funciona muy bien.¿Por qué Request.Cookies devuelve una cadena en lugar de un objeto HttpCookie en el bucle foreach?
No mire su lógica por favor, solo tengo curiosidad por qué la HttpCookieCollection (Request.Cookies en este caso) devuelve una cadena (nombre de cookie) en lugar de un objeto HttpCookie en el bucle foreach. ¿Es un problema de coherencia porque normalmente obtenemos el objeto HttpCookie en esta colección por índice/nombre?
Gracias,
foreach (string cookieKey in System.Web.HttpContext.Current.Request.Cookies)
{
HttpCookie tmpCookie = System.Web.HttpContext.Current.Request.Cookies[cookieKey];
if (tmpCookie != null && tmpCookie["RecentlyVisited"] != null)
{
cookie.Add(tmpCookie);
}
}
Gracias, @ Chris: Yo no te pido la forma de repetición por una colección de bucle;) –
tengo el mismo problema, que no entiendo ¿Por qué tengo que usar una cadena inscrita de HttpCookie en la declaración foreach? ¿Cualquier pista? – gonxalo
si usa System.Net.CookieCollection puede iterar de esa manera. pero no con HttpCookieCollection, extraño comportamiento, creo. public static HttpCookieCollection CookieCollectionToHttpCookieCollection (CookieCollection cookieCollection) { HttpCookieCollection httpCookieCollection = new HttpCookieCollection(); foreach (Cookie cookie en cookieCollection) { httpCookieCollection.Add (CookieToHttpCookie (cookie)); } return httpCookieCollection; } – gonxalo