Article complet: Web.AllowUnSafeUpdates

27/05/2009

Permalink 18:15:18, Catégories: Outils, 208 mots   French (FR) , stephane eyskens

Web.AllowUnSafeUpdates

Salut,

Alors voilà, ce post ne va pas révolutionner la planète SharePoint :), loin s'en faut. C'est juste un petit post en forme de coup de gueule sur l'utilisation de la propriété AllowUnSafeUpdates.

Dans quasiment tous les exemples de code que je vois sur les forums, dans les tutos etc...(et j'ai sans doute fait la même erreur de temps en temps), je constate une "erreur" qui n'a pas forcément de conséquence mais qui pour moi n'est pas très logique.

Je m'explique : la propriété AllowUnSafeUpdates permet à une web request en HTTP GET d'effectuer une mise à jour sur un objet SPWeb. Souvent, je constate que 99% des exemples de code utilisent la propriété comme suit :

Web.AllowUnSafeUpdates = true;
//traitement
Web.AllowUnSafeUpdates = false;

C'est à dire que le code remet systématiquement la propriété à false.

Alors qu'à mon sens, il serait plus judicieux de faire ceci :

bool AllowUnSafeUpdates = Web.AllowUnSafeUpdates;
try
{
Web.AllowUnSafeUpdates = true;
//traitement
}
catch(//catcher )
{

}
finally
{
//on le remet à sa valeur initiale avant qu'on ne travaille dessus
Web.AllowUnSafeUpdates=AllowUnSafeUpdates;
}

Voilà, je vous avais prévenu, ce post est juste un "coup de gueule" sur une pratique qui m'énerve et à laquelle j'ai dû m'adonner par le passé :))

A bientôt

Social Bookmarking:

                                     

Commentaires, Pingbacks:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0
Commentaire de: divinaet [Membre]
J'ai encapsuler ce code autour d'un délégué pour éviter le copier / coller :

public delegate void Actions();

///
/// Effectue les traitements en mettant SPContext.Current.Web.AllowUnsafeUpdates à true
/// et remet ensuite la valeur initiale (true ou false) même si
/// une exception intervient.
///
///
public static void DoWithAllowUnsafe(Actions actions)
{
Exception exception=null;

bool AllowUnSafeUpdates = SPContext.Current.Web.AllowUnsafeUpdates;
try
{
SPContext.Current.Web.AllowUnsafeUpdates = true;

actions();
}
catch (Exception ex)
{
exception = ex;
}
finally
{
SPContext.Current.Web.AllowUnsafeUpdates = AllowUnSafeUpdates;
}
throw exception;
}


--> il suffit ensuite d'appeler :

Utility.DoWithAllowUnsafe(delegate() {
//Votre code ici
}
);
Permalien 09/08/2010 @ 13:35
Commentaire de: divinaet [Membre]
Remarque : mon code contient un bug, il ne faut renvoyer l'exception que si celle ci n'est pas null... bien entendu...
Permalien 09/08/2010 @ 13:48

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Blog de Stephane Eyskens sur SharePoint

Catégories


Rechercher

<  Janvier 2012  >
Lun Mar Mer Jeu Ven Sam Dim
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web