XmlSecureResolver Constructores

Definición

Inicializa una nueva instancia de la clase XmlSecureResolver.

Sobrecargas

Nombre Description
XmlSecureResolver(XmlResolver, PermissionSet)

Inicializa una nueva instancia de la XmlSecureResolver clase con y XmlResolverPermissionSet especificado.

XmlSecureResolver(XmlResolver, Evidence)

Inicializa una nueva instancia de la XmlSecureResolver clase con y XmlResolverEvidence especificado.

XmlSecureResolver(XmlResolver, String)

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

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 XmlSecureResolver clase con y XmlResolverPermissionSet especificado.

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

Resolución XML encapsulada por .XmlSecureResolver

permissionSet
PermissionSet

El conjunto de permisos que se va a aplicar al subyacente XmlResolver. XmlSecureResolver Llama al PermitOnly() método en el conjunto de permisos antes de llamar al GetEntity(Uri, String, Type) método en la resolución XML subyacente.

Ejemplos

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


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 XmlSecureResolver clase con y XmlResolverEvidence especificado.

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

Resolución XML encapsulada por .XmlSecureResolver

evidence
Evidence

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

Comentarios

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

  • Si trabaja 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 trabaja 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 trabaja en un entorno de confianza parcial y tiene código o datos procedentes de una fuente externa, pero tampoco conoce su procedencia, entonces:

    Establezca el parámetro evidence en null. Esto no permite el acceso a los recursos.

    O bien

    Si la aplicación requiere algún acceso a los recursos, solicite evidencia del autor de la llamada.

Se aplica a

XmlSecureResolver(XmlResolver, String)

Source:
XmlSecureResolver.cs
Source:
XmlSecureResolver.cs
Source:
XmlSecureResolver.cs
Source:
XmlSecureResolver.cs
Source:
XmlSecureResolver.cs

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

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

Resolución XML encapsulada por .XmlSecureResolver

securityUrl
String

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

Ejemplos

En este ejemplo se usa el XmlSecureResolver(XmlResolver, String) constructor para crear un XmlSecureResolver objeto que solo puede 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 common Language Runtime (CLR) de .NET Framework y para el código que se ejecuta en CLR que se integra en Microsoft SQL Server 2005. Esto puede provocar casos en los que el código desarrollado para el CLR de .NET Framework 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 del CLR integrado de SQL Server no usa la información de Url o Zone. En su lugar, concede permisos basados en el GUID, que el servidor agrega cuando se cargan los ensamblados. Cuando usted utiliza XmlSecureResolver en el CLR integrado de SQL Server, proporcione cualquier evidencia necesaria directamente utilizando un PermissionSet especificado.

Se aplica a