บริการเว็บ SSRS invoking จาก WSS / มอสในสภาพแวดล้อม FBA

เราต้องเรียก "CreateSubscription" วิธีบนบริการเว็บการ SSRS ที่เป็นโฮสต์(fba)การจัดการสิ่งแวดล้อมมอจากแบบกำหนดเองของ web part. เราเก็บการเปลี่ยนแปลงของ:

  • 401: ไม่ได้รับอนุญาต
  • ย้ายวัตถุ

"วัตถุย้าย" ข้อความน่าสนใจเนื่องจากมันเป็นคำพูดที่วัตถุ"" (บริการ SSRS) มี "ย้าย" การ login.aspx. นี้อย่างชัดเจนหมายถึง มีปัญหาการรับรองความถูกต้องบางประการ.

ฉันก็รู้ว่า ผมมี คั่นหนังสือรายการบล็อก โดยโรเบิร์ต Garret ที่อธิบายวิธีการเรียกบริการเว็บ WSS/มอ ทั่วไปอาศัยอยู่ภายในสภาพแวดล้อม(fba). หมายเหตุที่ฉันไม่สามารถเชื่อมโยงโดยตรงกับบทความ (เป็นของ 06/09/08) เพราะมันต้องการการรับรองความถูกต้อง. ลิงค์ที่ผมให้นำท่านไป "ข้อความทั้งหมด" ดูและคุณสามารถค้นหาบทความเฉพาะเจาะจง โดยการค้นหา "Accessing MOSS บริการเว็บโดยใช้การรับรองความถูกต้องตามแบบฟอร์ม".

นี่คือรหัสที่ทำงานให้เรา:

อาร์เอส ReportingService2006 = null; 
// รับรองความถูกต้อง ตรวจสอบรับรองความถูกต้อง = ใหม่ รับรองความถูกต้อง(); 
ความถูกต้องUrl = "http://URL/_vti_bin/Authentication.asmx";
ความถูกต้องCookieContainer =
ใหม่ CookieContainer();
ผล LoginResult =ความถูกต้องเข้าสู่ระบบ("ผู้ใช้", "รหัสผ่าน");
ถ้า (ผลการErrorCode == LoginErrorCode.NoError) 
{
// ไม่ผิดพลาด, เพื่อ รับคุกกี้.
CookieCollection คุกกี้ =ความถูกต้องCookieContainer.GetCookies(ใหม่ Uri(ความถูกต้องUrl));
AuthCookie คุกกี้ =คุกกี้[ผลการCookieName];
rs =
ใหม่ ReportingService2006();
โรงแรมอาร์เอสUrl =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
โรงแรมอาร์เอสCookieContainer =
ใหม่ CookieContainer();
โรงแรมอาร์เอสCookieContainer.Add(authCookie);
}
ลอง
{
  โรงแรมอาร์เอสCreateSubscription(รายงาน, extSettings, desc, eventType, matchData, parameters1);
}
จับ (ยกเว้นแฟนเก่า)
{
  Console.WriteLine(อดีตMessage.ToString());
}

ผมตีความสิ่งที่ต้องทำเช่นนี้:

  • ส่วนเว็บของเราต้องเรียกบริการรับรองความถูกต้อง และพูดว่า, "เฮ้, โทนี่, มันเป็นฉัน!".
  • บริการรับรองความถูกต้องตอบว่า, "เฮ้, ทราบว่าคุณ. เด็กอย่างไร? โทเค็นได้"
  • เราเรียกบริการ SSRS และพูดว่า, "โทนี่ส่งฉัน, โทเค็นได้"

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทิ้งคำตอบไว้

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่. ช่องที่ต้องการถูกทำเครื่องหมาย *