Services Web SSRS invoquant de WSS / MOUSSE en environnement EEA

Nous avions besoin d'invoquer la "CreateSubscription" méthode sur un service web Reporting Services qui est hébergé dans un FBA gérés environnement MOSS d'un composant WebPart personnalisé. Nous continuions obtenir des variations de:

  • 401: Non autorisé
  • Objet déplacé

Le « objet déplacé" message était plus intéressant car il disait que l'objet"" (notre service de Reporting Services) avait "bougé" vers login.aspx. Cela signifiait clairement que nous avons eu une sorte de problème d'authentification.

Finalement, j'ai réalisé que j'avais signet une entrée de blog par Robert Garret qui décrit comment appeler un service web WSS/MOSS usage général vivant à l'intérieur d'un environnement EEA. Notez que je ne peux pas accéder directement à l'article (comme des 06/09/08) parce qu'il veut authentifier. Le lien que je fournis vous amène à un "tous les messages" vue et vous pouvez localiser l'article spécifique en recherchant « Accessing MOSS Web Services utilisant l'authentification Forms Based ».

Voici le code qui a fonctionné pour nous:

ReportingService2006 rs = null; 
// Authentifier Authentification auth = Nouveau Authentification(); 
auth.URL = "http://URL/_vti_bin/Authentication.asmx";
auth.CookieContainer =
Nouveau CookieContainer();
Résultat LoginResult = auth.Login(« userid », « password »);
Si (résultat.ErrorCode == LoginErrorCode.NoError) 
{
// Aucune erreur, Procurez-vous les cookies.
CookieCollection cookies = auth.CookieContainer.GetCookies(Nouveau URI(auth.URL));
Cookie authCookie = cookies[résultat.CookieName];
RS =
Nouveau ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
Nouveau CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Essayez
{
  RS.CreateSubscription(rapport, extSettings, DESC, eventType, matchData, paramètres CLIENT1);
}
captures (System.Exception ex)
{
  Console.WriteLine(ex.Message.ToString());
}

J'interprète des choses à travailler comme ça:

  • Notre WebPart doit composer le service d'authentification et de dire, "Hey, Tony, C'est moi!".
  • Service d'authentification répond disant, "Hey, Je sais que vous. Comment sont les enfants? Voici un jeton."
  • Nous appelons le service Reporting Services et dire, "Tony m'a envoyé, Voici le jeton."

</fin>

S'abonner à mon blog.

Laisser une réponse

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *