WebRequest من المضيف المحلي إلى المضيف المحلي: لماذا هو حرمانهم؟

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

سؤال

وبلدي التطبيق يستخدم WebRequest في بعض النقاط للحصول على صفحات من نفسها.

وهذا لا ينبغي أن يكون مشكلة. في الواقع يعمل بشكل جيد على الخادم الذي هو "المشتركة" استضافة مجموعة بثقة متوسطة. محليا، وأنا استخدم سياسة أمنية مخصصة مبنية على الثقة متوسطة، والذي يتضمن ما يلي - نسخها مباشرة من سياسة الثقة متوسطة الافتراضي:

<IPermission
  class="WebPermission"
  version="1">
    <ConnectAccess>
        <URI uri="$OriginHost$"/>
    </ConnectAccess>
</IPermission>

والخط المخالف هو في XmlRelativeUrlResolver مخصص:

public override object GetEntity( System.Uri puriAbsolute, string psRole, System.Type pReturnType )
{
    return _baseResolver.GetEntity( puriAbsolute, psRole, pReturnType );
}

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

 at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
   at System.Security.CodeAccessPermission.Demand()
   at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint)
   at System.Net.HttpRequestCreator.Create(Uri Uri)
   at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
   at System.Net.WebRequest.Create(Uri requestUri)
   at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials)
   at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
   at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
   at flow.controls.XmlRelativeUrlResolver.GetEntity(Uri puriAbsolute, String psRole, Type pReturnType) in c:\flow\source\controls\DataTransform.cs:line 105
   at System.Xml.Xsl.Xslt.XsltLoader.CreateReader(Uri uri, XmlResolver xmlResolver)

ولأي شخص رؤية المشكلة هنا؟

وSijin: شكرا لهذا الاقتراح. ويستند عنوان الموقع الذي يحصل على إرسالها إلى محلل على URL الطلب، وأنا أكدت في المصحح أن الوصول إلى الموقع في 127.0.0.1 تعطي نفس النتيجة.

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

المحلول 2

وجهلي. لم أكن أعرف أن الرمز $ OriginHost $ تم استبدال باستخدام السمة originUrl من مستوى الثقة - اعتقد انها عدت للتو من رابط التطبيق. كنت قد تركت أصلا هذا فارغا السمة.

<trust level="CustomMedium" originUrl="http://localhost/" />

نصائح أخرى

هل يعمل إذا وضعت 127.0.0.1 بدلا من المضيف المحلي؟

وهذا قد لا يكون الحل ولكن عندما رأيت مشاركتك تذكرت هذه المسألة أنني واجهت منذ نحو عام:

<اقتباس فقرة>   

http://support.microsoft.com/default.aspx/kb/896861

     

وظهور خطأ 401.1 عند   استعراض موقع ويب يستخدم المتكاملة   مصادقة وتتم استضافته على IIS   5.1 أو IIS 6

وكنا خلق WebRequest لفحص تتخلص من صفحة وعملت في بيئة الإنتاج لدينا لأننا كنا لا تستخدم اسم المضيف الاسترجاع ولكن على آلات تطوير انتهى مع وصول مرفوض (بعد تطبيق نظام التشغيل Windows Server 2003 SP2). الفرق واحد هنا هو أن هذا كان تحت المصادقة المتكاملة التي تسببت في فشل ... انها عملت عندما كان طلب مجهول (بحيث هو السبب في أنني لست متأكد من أن هذا هو الجواب لكم).

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