Invocando Servizos SSRS web de WSS / Moss en Medio Ambiente FBA

Necesitabamos de invocar a 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: Non autorizado
  • Obxecto Movido

O obxecto "movida" mensaxe era máis interesante porque estaba dicindo que o obxecto "" (noso servizo SSRS) habían "movido" to login.aspx. This clearly meant we had some kind of authentication problem.

Eu finalmente entender que eu tiña marcada unha entrada de blog 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 (a partir de 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".

Aquí está o código que funcionou para nós:

ReportingService2006 rs = nulo; 
// Acceder ao sistema Autenticación auth = novo Autenticación(); 
auth.Url = "http://URL / _vti_bin / Authentication.asmx";
auth.CookieContainer =
novo CookieContainer();
Resultado LoginResult = auth.login("userid", "password");
se (result.ErrorCode == LoginErrorCode.NoError) 
{
// Non hai erros, co fin de conseguir as cookies.
Galletas CookieCollection = auth.CookieContainer.GetCookies(novo Uri(auth.Url));
Biscoito authCookie = galletas[result.CookieName];
rs =
novo ReportingService2006();
rs.Url =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs.CookieContainer =
novo CookieContainer();
rs.CookieContainer.Add(authCookie);
}
intentar
{
  rs.CreateSubscription(denunciar, extSettings, desc, eventType, matchData, parameters1);
}
incorporarse (Exception ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Eu interpreto que as cousas funcionen como esta:

  • Nosa parte web que chamar o servizo de identificación e dicir, "Hey, Tony, son eu!".
  • Mensaxes servizo de autenticación dicindo, "Hey, I know you. How are the kids? Here’s a token."
  • Chamamos o servizo SSRS e dicir, "Tony sent me, aquí está o token."

</final>

Rexístrate para o meu blog.

Deixe unha resposta

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *