Aufrufen von Webdiensten von SSRS von WSS / Moos in FBA-Umgebung

Wir brauchten, um die "CreateSubscription aufrufen" Methode auf einer SSRS-Webdienst, der in eine FBA gehostet wird verwaltet MOSS-Umgebung von einem benutzerdefinierten WebPart. Wir immer Variationen:

  • 401: Nicht autorisierte
  • Objekt verschoben

Das "Objekt verschoben" Nachricht wurde am interessantesten, weil es, dass sagen war das Objekt"" (Unser SSRS-service) "zog" zu login.aspx. Dies bedeutete natürlich hatten wir eine Art Authentifizierungsproblem.

Schließlich wurde mir klar, dass ich Lesezeichen einen Blog-Eintrag von Robert Garret beschrieben, die wie einen Allzweck-WSS/MOSS-Web-Service Leben innerhalb einer FBA-Umgebung aufgerufen. Beachten Sie, dass ich direkt auf den Artikel verlinken kann nicht (ab 06/09/08) weil es authentifizieren möchte. Der Link, den ich zur Verfügung stellen bringt Sie zu einem "alle-Beiträge" Ansicht und Sie können den bestimmten Artikel suchen, indem suchen "Zugreifen auf MOSS-Webdienste mithilfe von Forms Based Authentication".

Hier ist der Code, der für uns gearbeitet:

ReportingService2006 Rs = NULL; 
// Authentifizieren Authentifizierung Auth = Neu Authentifizierung(); 
auth.URL = "http://URL/_vti_bin/Authentication.asmx";
auth.CookieContainer =
Neu CookieContainer();
LoginResult Ergebnis = auth.Anmeldung("Userid", "Passwort");
If (Ergebnis.ErrorCode == LoginErrorCode.NoError) 
{
// Kein Fehler, So erhalten Sie die cookies.
CookieCollection Cookies = auth.CookieContainer.GetCookies(Neu URI(auth.URL));
Cookie AuthCookie = Cookies[Ergebnis.CookieName];
RS =
Neu ReportingService2006();
Rs.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
Rs.CookieContainer =
Neu CookieContainer();
Rs.CookieContainer.Add(authCookie);
}
versuchen
{
  Rs.CreateSubscription(Bericht, extSettings, DESC, eventType, matchData, PARAMETERS1);
}
fangen (Exception ex)
{
  Console.WriteLine(Ex.Message.ToString());
}

Ich interpretiere Dinge wie diese Arbeiten:

  • Unserer Web-Seite muss der Authentifizierungsdienst DFÜ und sagen, "Hey, Tony, Es ist mir!".
  • Authentifizierungsdienst Antworten sagen, "Hey, Ich kenne dich. Wie sind die Kinder? Hier ist ein Token."
  • Wir rufen die SSRS-Service und sagen, "Tony schickte mir, Hier ist das Token."

</Ende>

Onnieren Sie meinen Blog ab.

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *