Silverlight:كيفية تجاهل (غياب) crossdomain.xml مع النظام.صافي.WebClient?

StackOverflow https://stackoverflow.com/questions/434962

سؤال

أحصل على استثناء أمان عند استخدام System.Net.WebClient للقيام طلبات HTTP التي يرجع ذلك إلى حقيقة أن crossdomain.xml أو clientaccesspolicy.xml على الملقم الهدف إما مفقودة أو هي مقيدة جدا.وأنا أعلم أن هناك سبب وجيه لهذا (ملفات تعريف الارتباط عبر الموقع طلب التزوير), ولكن هذا لا ينطبق في هذه الحالة لأن كل ما تحتاجه هو القيام عادي HTTP الحصول على طلبات التعسفي عناوين المواقع بدون استخدام ملفات تعريف الارتباط أو أي شيء يتوهم.

أنا بالفعل فكره البروكسي التي سوف تجلب عناوين url ، ولكن هذا يبدو مثل قبيح الحل ، ناهيك عن النفايات من عرض النطاق الترددي.

ما هي الطريقة (إذا كان هناك واحد) أن تفعل ذلك في سيلفرلايت?أنا باستخدام حق الصف ؟

هل كانت مفيدة؟

المحلول

أعتقد أن هذا هو في الواقع ليس من الممكن على الأقل مع WebClient.الفكرة كلها هو تقييد (حماية...) العملاء من غير المرغوب فيه يطلب إلى الملقمات الأخرى.

للالتفاف على هذا, ما يمكنك القيام به هو وكيل خدمة ويب التي سيتم استدعاء "التعسفي عناوين" من خادم الويب الخاص بك ، وتمرير النتائج إلى سيلفرلايت العميل.بهذه الطريقة العملاء البقاء المحمية أثناء تحقيق وظيفة تريد.

نصائح أخرى

لماذا تريد التخلص منه ؟

إذا كنت الشخصي سيلفرلايت الطلبات عبر المجال السيناريو دائما الاتصال clientaccesspolicy.xml الملف.لا يمكنك تغيير هذا السلوك (الداخلية إلى سيلفرلايت وقت التشغيل).وعلاوة على ذلك, إذا لم تجد clientaccessolicy.xml الملف المكالمات فلاش/فليكس equivelant (crossdomain.xml).إذا كان كلا لا وجود لها أو لا يسمح طلبات من هذا المجال ، طلباتك سوف تفشل ببساطة.

كتبت مقالا حول استخدام من التصميم والدعم الخارجي لكي لا تضطر إلى وضع تلك XML الملفات على خادم الويب و يمكنك جعلها ديناميكية.المادة موجودة هنا:

http://silverlighthack.com/post/2008/11/08/Silverlight-clientaccesspolicyxml-files-for-the-Enterprise-(Part-1-of-2).aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top