> Tech > Afficher un iframe

Afficher un iframe

Tech - Par iTPro - Publié le 20 février 2012
email

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

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 gratuitement cette ressource

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

Tech - Par iTPro - Publié le 20 février 2012