Compartir vía


XmlSecureResolver Constructores

Definición

Inicializa una nueva instancia de la clase XmlSecureResolver.

Sobrecargas

XmlSecureResolver(XmlResolver, PermissionSet)

Inicializa una nueva instancia de la clase XmlSecureResolver con los parámetros XmlResolver y PermissionSet especificados.

XmlSecureResolver(XmlResolver, Evidence)

Inicializa una nueva instancia de la clase XmlSecureResolver con los parámetros XmlResolver y Evidence especificados.

XmlSecureResolver(XmlResolver, String)

Inicializa una nueva instancia de la clase XmlSecureResolver con el objeto XmlResolver y la dirección URL proporcionados.

Comentarios

Los tres constructores proporcionan tres tipos de restricciones de acceso:

Consulte los temas de referencia del constructor para obtener ejemplos de estos tipos de restricciones.

XmlSecureResolver(XmlResolver, PermissionSet)

Inicializa una nueva instancia de la clase XmlSecureResolver con los parámetros XmlResolver y PermissionSet especificados.

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::Security::PermissionSet ^ permissionSet);
public XmlSecureResolver (System.Xml.XmlResolver resolver, System.Security.PermissionSet permissionSet);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * System.Security.PermissionSet -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, permissionSet As PermissionSet)

Parámetros

resolver
XmlResolver

Solucionador de XML que ajusta la clase XmlSecureResolver.

permissionSet
PermissionSet

Conjunto de permisos que se va a aplicar al elemento XmlResolver subyacente. XmlSecureResolver llama al método PermitOnly() del conjunto de permisos antes de llamar al método GetEntity(Uri, String, Type) del solucionador de XML subyacente.

Ejemplos

En el ejemplo siguiente se construye un XmlSecureResolver objeto mediante un conjunto de permisos personalizado.

Object^ GetFile( String^ fileURL, XmlResolver^ resolver )
{
   // Generate the default PermissionSet using the file URL.
   Evidence^ evidence = XmlSecureResolver::CreateEvidenceForUrl( fileURL );
   PermissionSet^ myPermissions = SecurityManager::ResolvePolicy( evidence );
   
   // Modify the PermissionSet to only allow access to http://www.contoso.com.
   // Create a WebPermission which only allows access to http://www.contoso.com.
   WebPermission^ myWebPermission = gcnew WebPermission(
      NetworkAccess::Connect,"http://www.contoso.com" );
   // Replace the existing WebPermission in myPermissions with the updated WebPermission.
   myPermissions->SetPermission( myWebPermission );
   
   // Use the modified PermissionSet to construct the XmlSecureResolver.
   XmlSecureResolver^ sResolver = gcnew XmlSecureResolver( resolver,myPermissions );
   
   // Get the object.
   Uri^ fullUri = sResolver->ResolveUri( nullptr, fileURL );
   return sResolver->GetEntity( fullUri, nullptr, nullptr );
}

public static Object GetFile (String fileURL, XmlResolver resolver) {

  // Generate the default PermissionSet using the file URL.
  Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(fileURL);
  PermissionSet myPermissions = SecurityManager.ResolvePolicy(evidence);

  // Modify the PermissionSet to only allow access to http://www.contoso.com.
  // Create a WebPermission which only allows access to http://www.contoso.com.
  WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect, "http://www.contoso.com");
  // Replace the existing WebPermission in myPermissions with the updated WebPermission.
  myPermissions.SetPermission(myWebPermission);

  // Use the modified PermissionSet to construct the XmlSecureResolver.
  XmlSecureResolver sResolver = new XmlSecureResolver(resolver, myPermissions);

  // Get the object.
  Uri fullUri = sResolver.ResolveUri(null, fileURL);
  return sResolver.GetEntity(fullUri, null, null);
}

public shared function GetFile (fileURL as String , resolver as XmlResolver) as Object
 
  '  Generate the default PermissionSet using the file URL.
  Dim evidence as Evidence = XmlSecureResolver.CreateEvidenceForUrl(fileURL)
  Dim myPermissions as PermissionSet = SecurityManager.ResolvePolicy(evidence)

  '  Modify the PermissionSet to only allow access to http://www.contoso.com.
  '  Create a WebPermission that only allows access to http://www.contoso.com.
  Dim myWebPermission as WebPermission = new WebPermission(NetworkAccess.Connect, "http://www.contoso.com")
  '  Replace the existing WebPermission in myPermissions with the updated WebPermission.
  myPermissions.SetPermission(myWebPermission)

  '  Use the modified PermissionSet to construct the XmlSecureResolver.
  Dim sResolver as XmlSecureResolver = new XmlSecureResolver(resolver, myPermissions)

  '  Get the object.
  Dim fullUri as Uri = sResolver.ResolveUri(nothing, fileURL)
  return sResolver.GetEntity(fullUri, nothing, nothing)
end function

Consulte también

Se aplica a

XmlSecureResolver(XmlResolver, Evidence)

Inicializa una nueva instancia de la clase XmlSecureResolver con los parámetros XmlResolver y Evidence especificados.

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public XmlSecureResolver (System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * System.Security.Policy.Evidence -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, evidence As Evidence)

Parámetros

resolver
XmlResolver

Solucionador de XML que ajusta la clase XmlSecureResolver.

evidence
Evidence

Evidencia usada para crear el objeto PermissionSet que se aplicará al elemento XmlResolver subyacente. El elemento XmlSecureResolver llama al método PermitOnly() en el objeto PermissionSet creado antes de llamar a GetEntity(Uri, String, Type) en el elemento XmlResolver subyacente.

Comentarios

Estos son algunos escenarios posibles y el tipo de evidencia que se debe proporcionar para cada escenario:

  • Si está trabajando en un entorno de plena confianza, use el ensamblado para crear la evidencia:

    Evidence myEvidence = this.GetType().Assembly.Evidence;
    XmlSecureResolver myResolver;
    myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
    
    Dim myEvidence As Evidence = Me.GetType().Assembly.Evidence
    Dim myResolver As XmlSecureResolver
    myResolver = New XmlSecureResolver(New XmlUrlResolver(), myEvidence)
    
  • Si está trabajando en un entorno de confianza parcial, tiene código o datos procedentes de un origen externo y conoce el origen del origen externo y tiene un URI verificable, use el URI para crear la evidencia:

    
    Evidence myEvidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI);
    XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
    
    Dim myEvidence As Evidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI)
    Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myEvidence)
    
  • Si está trabajando en un entorno de confianza parcial y tiene código o datos procedentes de un origen externo, pero no conoce el origen del origen externo, ya sea:

    Establezca el parámetro evidence en null. De esta manera, no se permite el acceso a los recursos.

    o bien

    Si su aplicación necesita determinado acceso a los recursos, solicite evidencias a quien realiza la llamada.

Se aplica a

XmlSecureResolver(XmlResolver, String)

Inicializa una nueva instancia de la clase XmlSecureResolver con el objeto XmlResolver y la dirección URL proporcionados.

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::String ^ securityUrl);
public XmlSecureResolver (System.Xml.XmlResolver resolver, string? securityUrl);
public XmlSecureResolver (System.Xml.XmlResolver resolver, string securityUrl);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * string -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, securityUrl As String)

Parámetros

resolver
XmlResolver

Solucionador de XML que ajusta la clase XmlSecureResolver.

securityUrl
String

Dirección URL usada para crear el objeto PermissionSet que se aplicará al XmlResolver subyacente. El XmlSecureResolver llama a PermitOnly() en el objeto PermissionSet creado antes de llamar a GetEntity(Uri, String, Type) en el XmlResolver subyacente.

Ejemplos

En este ejemplo se usa el XmlSecureResolver(XmlResolver, String) constructor para crear un XmlSecureResolver objeto que solo tenga permiso para acceder al sitio de intranet local.

XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")

Comentarios

Importante

Hay diferencias en la infraestructura de seguridad para el código que se ejecuta en el .NET Framework Common Language Runtime (CLR) y para el código que se ejecuta en CLR que se integra en Microsoft SQL Server 2005. Esto puede dar lugar a casos en los que el código desarrollado para la .NET Framework CLR funciona de forma diferente cuando se usa en el CLR integrado de SQL Server. Una de estas diferencias afecta a la XmlSecureResolver clase cuando tiene evidencia que se basa en una dirección URL (es decir, cuando se usa el CreateEvidenceForUrl método o el XmlSecureResolver(XmlResolver, String) constructor). El mecanismo de resolución de directivas de la SQL Server CLR integrado no usa la Url información o Zone . En su lugar, concede permisos basados en el GUID que el servidor agrega cuando se cargan los ensamblados. Cuando use en XmlSecureResolver el CLR integrado de SQL Server, proporcione cualquier evidencia necesaria directamente mediante un especificadoPermissionSet.

Se aplica a