Pregunta

Mi aplicación utiliza una solicitud web en ciertos puntos para obtener páginas de sí misma.

Esto no debería ser un problema. Realmente funciona bien en el servidor, que es un " compartido " Paquete de hosting con confianza media. A nivel local, uso una política de seguridad personalizada basada en la confianza de Medium, que incluye lo siguiente & # 8212; copiado directamente de la política de confianza media predeterminada:

<IPermission
  class="WebPermission"
  version="1">
    <ConnectAccess>
        <URI uri="$OriginHost
public override object GetEntity( System.Uri puriAbsolute, string psRole, System.Type pReturnType )
{
    return _baseResolver.GetEntity( puriAbsolute, psRole, pReturnType );
}
quot;/> </ConnectAccess> </IPermission>

La línea ofensiva está en un XmlRelativeUrlResolver personalizado:

 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)

La url que se solicita está en localhost, en la misma aplicación que el solicitante. Aquí está la parte superior del seguimiento de la pila.

<*>

¿Alguien ve el problema aquí?

@Sijin: Gracias por la sugerencia. La url que se envía al solucionador se basa en la URL de solicitud, y confirmó en el depurador que acceder al sitio en 127.0.0.1 produce el mismo resultado.

¿Fue útil?

Solución 2

Mi ignorancia. No sabía que el token $ OriginHost $ se reemplazó utilizando el atributo originUrl del nivel de confianza; pensé que solo provenía de la url de la aplicación. Originalmente había dejado este atributo en blanco.

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

Otros consejos

¿Funciona si pones 127.0.0.1 en lugar de localhost?

Esta podría no ser la solución, pero cuando vi su publicación recordé este problema que tuve hace aproximadamente un año:

  

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

     

Recibes el error 401.1 cuando   navegar por un sitio web que usa Integrated   Autenticación y está alojado en IIS   5.1 o IIS 6

Estábamos creando una WebRequest para eliminar una página de la pantalla y funcionó en nuestro entorno de producción porque no estábamos usando un nombre de host de bucle invertido, pero en las máquinas de desarrollo terminamos con el acceso denegado (después de aplicar Windows Server 2003 SP2). La única diferencia aquí es que esto estaba bajo autenticación integrada, lo que hizo que fallara ... funcionó cuando la solicitud era anónima (por eso no estoy seguro de que esta sea la respuesta para usted).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top