4 votes

Comment appeler un service WCF Http derrière SiteMinder ?

J'essaie d'appeler des services Web WCF 4 Http qui sont hébergés dans une application ASP.NET. Le service est protégé par SiteMinder.

Je me demandais comment je pouvais appeler le service web de manière programmatique, et plus précisément quelles informations je devais transmettre pour être autorisé par SiteMinder à accéder à mes ressources.

Je fais la demande à partir de l'application ASP.NET qui tourne sur le même serveur, et j'ai donc accès au cookie d'authentification.

6voto

StevenH Points 1387

Obtenez d'abord le jeton d'authentification SiteMinder comme suit :

    private string ObtainSiteMinderSession()
    {
        var cookie = Request.Cookies["SMSESSION"];
        return cookie != null ? cookie.Value : string.Empty;
    }

Transmettez ensuite ce jeton à vos appels de service web comme suit (en utilisant Microsoft.Http.dll) :

using Microsoft.Http;
using Microsoft.Http.Headers;

...

var Client = new HttpClient(baseUri);

// Add SMSESSION
var smCookie = new Cookie();
smCookie.Add("SMSESSION", ObtainSiteMinderSession());
Client.DefaultHeaders.Cookie.Add(smCookie);

using (var httpRequest = new HttpRequestMessage(Verbs.GET, "/LoadData/"))
{ ... }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X