Ecrire et lire un cookies proprement + snippets codes

Contenu du snippet

Ca parait peut etre bete, mais j'ai pas vu de source montrant comment lire et ecrire un cookies proprement et facilement.

Le code n'a je pense pas besoin d'explication, il est sous forme de propriété en lecture / ecriture, relativement classique :)
Voici donc ma méthode.

A l'origine j'ai fait ce code, pour un article sur les codes snippets dans Visual Studio 2005 : http://www.c2i.fr/code.aspx?IDCode=602

j'ai mis le XML pour le snippet en dessous, pour comprendre comment l'integrer regarder l'article plus haut.

Source / Exemple :


Public Property PropertyName() As String
        Get
            'If Not Request.Browser.Cookies Then Throw New Exception("Attention le client n'accepte pas les cookies")
            If Not Request.Browser.Cookies Then Return "DefaultValue"

            If Not Request.Cookies("CookiesName") Is Nothing Then
                Request.Cookies("CookiesName").Expires = Now.AddMonths(3)
                Return CType(Request.Cookies("CookiesName").Value, String)
            Else
                Dim mCook As New HttpCookie("CookiesName")
                mCook.Value = "DefaultValue"
                mCook.Expires = Now.AddMonths(3)
                Response.Cookies.Add(mCook)
                Return "DefaultValue"
            End If
        End Get
        Set(ByVal value As String)
            'If Not Request.Browser.Cookies Then Throw New Exception("Attention le client n'accepte pas les cookies")
            If Not Request.Browser.Cookies Then Exit Property

            If Not Request.Cookies("CookiesName") Is Nothing Then
                Request.Cookies("CookiesName").Value = value.ToString
                Request.Cookies("CookiesName").Expires = Now.AddMonths(3)
            Else
                Dim mCook As New HttpCookie("CookiesName")
                mCook.Value = value.ToString
                mCook.Expires = Now.AddMonths(3)
                Response.Cookies.Add(mCook)
            End If
        End Set
    End Property

''' Fichier Cookies.Snippet a utiliser avec VS 2005
<?xml version="1.0" encoding="UTF-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>Accès aux cookies</Title>
			<Author>DURAND Cyril</Author>
			<Shortcut>cookies</Shortcut>
			<Description>Permet d'acceder en lecture écriture à un cookies dans une page web</Description>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
			</SnippetTypes>
			<Keywords>
				<Keyword>Cookies</Keyword>
				<Keyword>Lecture</Keyword>
				<Keyword>Ecriture</Keyword>
			</Keywords>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>PropertyName</ID>
					<Default>PropertyName</Default>
					<ToolTip>A remplacer par le nom de votre propriété</ToolTip>
				</Literal>
				<Literal>
					<ID>CookiesName</ID>
					<Default>"CookiesName"</Default>
					<ToolTip>A remplacer par le nom de votre cookies</ToolTip>
				</Literal>
				<Literal>
						<ID>Type</ID>
						<ToolTip>Type de votre cookies /!\ Attention il doit etre serializable</ToolTip>
						<Default>String</Default>
				</Literal>
				<Literal>
					<ID>Expires</ID>
					<Type>Integer</Type>
					<Default>3</Default>
					<ToolTip>Durée pendant laquelle le cookies sera conservé après son dernier appel</ToolTip>
					<Function>test</Function>
				</Literal>
				<Literal>
					<ID>DefaultValue</ID>
					<Default>"DefaultValue"</Default>
					<ToolTip>Valeur Par défaut de votre cookies</ToolTip>
				</Literal>
			</Declarations>
			<Code Language="VB">
				<![CDATA[
Public Property $PropertyName$ As $Type$
	Get
		'If Not Request.Browser.Cookies Then Throw New Exception("Attention le client n'accepte pas les cookies")
		If Not Request.Browser.Cookies Then Return $DefaultValue$

		If Request.Cookies($CookiesName$) IsNot Nothing Then
			Request.Cookies($CookiesName$).Expires = Now.AddMonths($Expires$)
			Return CType(Request.Cookies($CookiesName$).Value, $Type$)
		Else
			Dim mCook As New HttpCookie($CookiesName$)
			mCook.Value = $DefaultValue$
			mCook.Expires = Now.AddMonths($Expires$)
			Response.Cookies.Add(mCook)
			Return $DefaultValue$
		End If
	End Get
	Set(ByVal value As $Type$)
		'If Not Request.Browser.Cookies Then Throw New Exception("Attention le client n'accepte pas les cookies")
		If Not Request.Browser.Cookies Then Exit Property
		
		If Request.Cookies($CookiesName$) IsNot Nothing Then
			Request.Cookies($CookiesName$).Value = value.Tostring
			Request.Cookies($CookiesName$).Expires = Now.AddMonths($Expires$)
		Else
			Dim mCook As New HttpCookie($CookiesName$)
				mCook.Value = value.Tostring
				mCook.Expires = Now.AddMonths($Expires$)
				Response.Cookies.Add(mCook)
		End If
	End Set
End Property
				]]>
			

</Snippet>
</CodeSnippet>
</CodeSnippets>
</code>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.