Позивајући ССРС Веб Сервицес Од ВСС / Маховине у ФБА животне средине

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" (ССРС наш сервис) had "moved" to login.aspx. This clearly meant we had some kind of authentication problem.

I eventually realized that I had bookmarked a blog entry 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 = null; 
// Authenticate Authentication auth = нови Authentication(); 
auth.Url = "хттп://URL/_vti_bin/Authentication.asmx";
auth.CookieContainer =
нови CookieContainer();
LoginResult result = auth.Login("userid", "password");
ако (result.ErrorCode == LoginErrorCode.NoError) 
{
// No error, so get the cookies.
CookieCollection cookies = auth.CookieContainer.GetCookies(нови Uri(auth.Url));
Cookie authCookie = cookies[result.CookieName];
rs =
нови ReportingService2006();
rs.Url =
"хттп://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs.CookieContainer =
нови CookieContainer();
rs.CookieContainer.Add(authCookie);
}
покушати
{
  rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters1);
}
улов (Изузетак ек)
{
  Цонсоле.ВритеЛине(ex.Message.ToString());
}

I interpret things to work like this:

  • Our web part needs to dial up the authentication service and say, "Hey, Tony, it’s me!".
  • Authentication service replies saying, "Hey, I know you. How are the kids? Here’s a token."
  • We call up the SSRS service and say, "Tony sent me, here’s the token."

</крај>

Претплатите се на мој блог.

Леаве а Репли

Ваша емаил адреса неће бити објављена. Обавезна поља су означена *