Invocar servicios Web SSRS de WSS / MOSS en entorno de FBA

Necesitábamos invocar la CreateSubscription"" método de un servicio web SSRS que está alojado en una FBA MOSS entorno administrado desde un elemento web personalizado. Seguimos recibiendo las variaciones de:

  • 401: No autorizado
  • Objeto movido

El "objeto movido" mensaje fue más interesante porque decía que el objeto"" (nuestro servicio SSRS) había "trasladado" a login.aspx. Esto significaba claramente que tenía algún tipo de problema de autenticación.

Finalmente me di cuenta que tenía marcado una entrada de blog por Robert Garret describe cómo invocar un servicio de web WSS/MOSS de propósito general viviendo dentro de un entorno de FBA. Tenga en cuenta que no puedo ligar directamente al artículo (como de 06/09/08) porque quiere autenticar. El enlace que proporciono te lleva a un "todos los mensajes" Vista y se puede localizar el artículo específico mediante la búsqueda de "Acceso A MOSS de servicios Web mediante la autenticación de formularios basado".

Aquí está el código que trabajó para nosotros:

ReportingService2006 rs = NULL; 
// Autenticar Autenticación auth = Nuevo Autenticación(); 
autenticaciónURL = "http://URL/_vti_bin/Authentication.asmx";
autenticaciónCookieContainer =
Nuevo CookieContainer();
Resultado de LoginResult = autenticaciónInicio de sesión("ID de usuario", "contraseña");
Si (resultado.ErrorCode == LoginErrorCode.NoError) 
{
// Ningún error, así que las cookies.
CookieCollection cookies = autenticaciónCookieContainer.GetCookies(Nuevo URI(autenticaciónURL));
Cookie authCookie = cookies[resultado.Nombre_cookie];
RS =
Nuevo ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
Nuevo CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Intente
{
  RS.CreateSubscription(informe, extSettings, desc, eventType, matchData, parameters1);
}
capturas (Exception ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Puedo interpretar las cosas como esta:

  • Nuestra parte web necesita el servicio de autenticación de acceso telefónico y decir, "Hey, Tony, soy yo!".
  • Servicio de autenticación responde diciendo:, "Hey, Yo te conozco. Cómo son los niños? Aquí es un símbolo."
  • Que llame al servicio SSRS y decimos, "Tony me ha enviado, aquí está el símbolo (token)."

</final>

Suscribirse a mi blog.

Etiquetas de Technorati: , ,

Contesta

su dirección de correo electrónico no será publicada. Los campos necesarios están marcados *