janvier
2010
La question n’est pas de revenir sur le bien fondé de l’UAC, le débat n’a pas ça place ici. Par contre il faut savoir une ou deux choses sur les conséquences que cela peut avoir sur l’utilisation des tubes nommés (netNamedPipeBinding en WCF).
En tant que développeur consciencieux, la première étape consiste à aller lire la documentation de MS sur le sujet. Vous la trouverez par exemple dans le Windows 7 Training Kit,et plus précisément dans le withepapper de la rubrique « isolation de la session 0″. En particulier vous y trouverez ces quelques lignes :
« If two-way interaction is required, use Windows Communication Foundation (WCF), .NET remoting, named pipes, or any other interprocess communication (IPC) mechanism (excluding window messages) to communicate across sessions. »
Super ! un coup de WCF et c’est gagné.
Sauf que … Ce que ne précise pas le document c’est que le serveur doit être créé par une session ayant les droits de création d’objets globaux (pour informations c’est le privilège SeCreateGlobalPrivilege). Ce qui dans le cas d’une session avec l’UAC activé est faux (par défaut ce privilège n’est accordé qu’aux … Administrateurs locaux !). Impossible donc de faire communiquer deux processus à travers les tubes nommés s’ils appartiennent à deux sessions différentes. Notez cependant que si les deux processus sont dans la même session, alors cela fonctionnera très bien, WCF n’émettant pas d’erreur et se contentant de créer un tube nommé local …
Bref les tubes nommés et l’UAC ne font pas bon ménage. La seule solution que j’ai trouvé pour l’instant consiste à passer par un TcpBinding à la place mais c’est pas le top du tout.
Ah et au passage, un mauvais point pour le training kit 7 qui « oubli » de mentionner ce détail …
Archives
- juillet 2012
- mars 2012
- février 2012
- novembre 2011
- octobre 2011
- mars 2011
- novembre 2010
- octobre 2010
- septembre 2010
- août 2010
- avril 2010
- février 2010
- janvier 2010
- novembre 2009
- octobre 2009
- septembre 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juin 2008
- mai 2008
- avril 2008
- février 2008
- mai 2007
- avril 2007
- mars 2007
- février 2007
- janvier 2007