Выклік службаў SSRS Web з WSS / MOSS ў навакольным асяроддзі FBA

We needed to invoke the "CreateSubscription" method on an SSRS web service that is hosted in an FBA managed MOSS environment from a custom web part. We kept getting variations of:

  • 401: Ці не дазволена
  • Перамясціць аб'ект

The "object moved" message was most interesting because it was saying that the "object" (нашай службы SSRS) had "moved" to login.aspx. This clearly meant we had some kind of authentication problem.

У рэшце рэшт я зразумеў, што ў мяне было закладка запіс у блогу by Robert Garret that described how to invoke a general purpose WSS/MOSS web service living inside an FBA environment. Note that I can’t link directly to the article (па стане на 06/09/08) because it wants to authenticate. The link I provide brings you to an "all posts" view and you can locate the specific article by searching for "Accessing MOSS Web Services using Forms Based Authentication".

Вось код, які працаваў на нас:

ReportingService2006 RS = нулявы; 
// Правяраць сапраўднасць Аўтэнтыфікацыі Auth = новы Ідэнтыфікацыя(); 
auth.Url = "HTTP://URL / _vti_bin / Authentication.asmx";
auth.CookieContainer =
новы CookieContainer();
LoginResult вынік = auth.login("userid", "password");
калі (result.ErrorCode == LoginErrorCode.NoError) 
{
// Няма памылкі, так што атрымаць печыва.
CookieCollection печыва = auth.CookieContainer.GetCookies(новы Уры(auth.Url));
Cookie authCookie = печыва[result.CookieName];
RS =
новы ReportingService2006();
rs.Url =
"HTTP://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs.CookieContainer =
новы CookieContainer();
rs.CookieContainer.Add(authCookie);
}
старацца
{
  rs.CreateSubscription(паведаміць, extSettings, па змяншэнні, типСобытия, matchData, parameters1);
}
злавіць (Выключэнне былых)
{
  Console.WriteLine(ex.Message.ToString());
}

Я інтэрпрэтаваць рэчы так працаваць:

  • Наш вэб-частка павінна набраць службу праверкі сапраўднасці і сказаць, "Hey, Тоні, гэта я!".
  • Адказаў служба Аўтэнтыфікацыя кажучы, "Hey, I know you. How are the kids? Here’s a token."
  • Заклікаем SSRS службу і сказаць, "Tony sent me, вось маркер."

</канец>

Падпісацца на мой блог.

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя палі пазначаныя * *