Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[Silverlight] Comment échanger des données entre une application Silverlight et une page ASP.NET via cookies ?

Il est parfois nécessaire, dans une application Silverlight, de communiquer avec "l'extérieur". Dans la majorité des cas, on aura tendance à utiliser un Web Service mais qu'en est-il lorsque vous souhaitez communiquer avec la page ASP.NET qui héberge votre application Silverlight ?

L'utilisation des cookies est pour ainsi dire nécessaire dans ce cas. Grâce à Silverlight 2, vous avez la possibilité de créer un cookie qui sera récupéré coté ASP.NET. Pour cela, il suffit d'assigner la propriété cookie de la page, en passant par la méthode SetProperty.

Afin de se simplifier la vie au maximum, je vous conseille de passer par une classe qui va encapsuler l'appel à cette méthode:

public class CookieManager

{

    public static void SetCookie(string key, string val, TimeSpan? expires)

    {

        SetCookie(key, val, expires, null, null, false);

    }

 

    public static void SetCookie(string key, string val, TimeSpan? expires, string path, string domain, bool secure)

    {

        var fullCookie = new StringBuilder();

        fullCookie.Append(string.Concat(key, "=", val));

 

        if (expires.HasValue)

        {

            var expire = DateTime.UtcNow + expires.Value; fullCookie.Append(string.Concat(";expires=", expire.ToString("R")));

        }

 

        if (path != null)

        {

            fullCookie.Append(string.Concat(";path=", path));

        }

 

        if (domain != null)

        {

            fullCookie.Append(string.Concat(";domain=", domain));

        }

 

        if (secure)

        {

            fullCookie.Append(";secure");

        }

 

        HtmlPage.Document.SetProperty("cookie", fullCookie.ToString());

    }

}

Pour créer un cookie coté Silverlight, rien de plus simple:

private void btnCreateCookie_Click(object sender, RoutedEventArgs e)

{

    CookieManager.SetCookie("DemoSL2", "Hello World", DateTime.Now.TimeOfDay.Add(new TimeSpan(1, 0, 0, 0)));

}

Enfin, il ne vous reste plus qu'à accéder, coté ASP.NET, à ce cookie nouvellement créé:

public void btnGetCookieClick(object sender, EventArgs e)

{

    var cookie = Request.Cookies["DemoSL2"];

 

    if(cookie != null)

    {

        var s = cookie.Value;

    }

}

C'est simple, efficace et pourtant très pratique !

 

A+

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 8 juillet 2008 10:58 par Thomas LEBRUN
Classé sous : ,

Commentaires

FREMYCOMPANY a dit :

On peut même rajouter qu'il est possible d'accéder au cookie coté client via ECMAScript (document.cookie).

# juillet 8, 2008 14:49
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01