Silverlight y Cookies
Vamos a ver un ejemplo de como setear u obtener cookies desde una aplicación Silverlight.
Para lograr este objetivo vamos a utilizar el objeto HTMLPage.Document, teniendo en cuenta que necesitamos agregar la referencia al namespace System.Windows.Browser.
private void SetCookie(string keyCookie, string valorCookie)
{
DateTime expireCookie = DateTime.Now + TimeSpan.FromDays(30);
string nuevaCookie = keyCookie + "=" + valorCookie +
";expires=" + expireCookie.ToString("R");
HtmlPage.Document.SetProperty("cookie", nuevaCookie);
}
Como vemos utilizamos el método SetProperty para definir el valor, mandando en el primer parámetro “cookie” para que sepa que tipo de objeto queremos definir, y en el segundo todos los valores de la cookie.
private string ObetenerCookie(string keyCookie)
{
string[] cookies = HtmlPage.Document.Cookies.Split(';');
foreach (string cookie in cookies)
{
string [] keyValue = cookie.Split('=');
if (keyValue.Length == 2)
{
if(keyValue[0].ToString() == keyCookie)
return keyValue[1];
}
}
return null;
}
Para obtener el valor de una cookie, vamos a tener que recorrer todas las cookies hasta encontrar la que nosotros necesitamos. HtmlPage.Document.Cookies nos devuelve un string con todas las cookies separadas por “;”.