Dans le formulaire de lecture du message, je souhaite afficher sur une carte avec une épingle sur l'adresse du lieu indiqué. Pour cela, nous allons utiliser la méthode la plus simple qui consiste à afficher un iframe dans la page présentée par le formulaire read.aspx. (Exemple disponible sur
Afficher un iframe
le site de Microsoft).
Cet iframe, comme la plupart des services de Bing Maps savent positionner des épingles ou afficher des chemins en se basant sur les coordonnées latitude et longitudes mais pas directement à partir de l’adresse. Bing Maps offre pour cela un webservice permettant de transformer une adresse en coordonnées latitude et longitude pouvant être exploitée ultérieurement.
Nous avons donc pour notre exemple la possibilité de calculer les coordonnées longitude et latitude à l’ouverture du message et ce, à chaque fois que le message sera ouvert ou de stocker les coordonnés du point dans le message lors de sa création. Cette deuxième option présente aussi des avantages au niveau de la conception des pages.
En effet, dans les pages ASPX que nous écrivons, le code qui s’exécute au niveau du serveur tourne dans le contexte de sécurité du pool applicatif d’OWA, c’est à dire « MSExchangeOWAAppPool » qui possède les droits de « LocalSystem » au niveau du serveur CAS. Il est donc impossible d’accéder à des ressources extérieures au système en tournant dans ce contexte de sécurité. Le code appelant le web service de Bing Maps doit donc tourner dans le contexte de sécurité du client, c’est-à-dire une fois que le rendu de la page a été produit au niveau du serveur. Or dans le formulaire de lecture, l’iframe étant préparé au niveau du serveur et il ne peut pas obtenir les coordonnées correspondant à l’adresse dans ses propriétés.
L’approche que j’ai choisie est donc d’insérer les coordonnées latitude et longitude avant l’envoi du message. Le bouton « Geolocalisation » appelle un javascript utilisant les services REST de Bing Maps pour effectuer cette géolocalisation. Les coordonnées sont ensuite ajoutées au corps du message pour des raisons de simplification de l’exemple.
Le formulaire de lecture Read.aspx va appeler les webservices d’Exchange sur le même principe que pour la création du message : impersonation, affichage des champs à partir du contenu du message ouvert.
Le point important à retenir dans cette étape est la façon dont on identifie le message à ouvrir. Lors de l’ouverture du message, OWA appelle le fichier read.aspx comme cela a été spécifié dans le fichier registry.xml et lui passe plusieurs paramètres dont l’identifiant de message. Cette identifiant de message correspond à celui de OWA qui est différent de celui à utiliser avec les webservices d’Exchange. On utilise ce morceau de code pour effectuer la conversion :
AlternateId objAltID = new AlternateId();
objAltID.Format = IdFormat.StoreId;
objAltID.Mailbox = « email@domaine.com »;
objAltID.UniqueId = Request.QueryString[« id »];
AlternateIdBase objAltIDBase = exchange.ConvertId(objAltID, IdFormat.EwsId);
AlternateId AltIDResp = (AlternateId)objAltIDBase;
String EWSID = AltIDResp.UniqueId;
Le reste de la page de lecture consiste à décortiquer le corps du message et afficher les bons champs au bon endroit.
L’iframe de Bing Maps est appelé dans un javascript dans le corps du message avec le code suivant :
Response.Write(« < iframe width=\ »400\ » height=\ »300\ » frameborder=\ »0\ » scrolling=\ »no\ » marginheight=\ »0\ » marginwidth=\ »0\ » src=\ »http://dev.virtualearth.net/embeddedMap/v1/silverlight/road?zoomLevel=10¢er= » + geoloc + « &pushpins= » + geoloc + « \ »/> »);
La variable geoloc étant renseignée lors de la décortication du corps du message après l’appel aux web services d’Exchange.
La page de résultat donne au final ce résultat : voir figure 2.
Une fois que l’on est content avec les formulaires écrit, il reste à rendre visible aux utilisateurs le formulaire de création de nouveau message.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Ready For IT 2026 : IA industrialisée, deepfakes et Prix Start-up au cœur des enjeux
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Ready For IT 2026 : quand l’accélération de l’innovation redessine les priorités des décideurs IT
- Microsoft Build 2026 : industrialiser l’IA agentique dans les environnements d’entreprise
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
