XmlSecureResolver Construtores

Definição

Inicializa uma nova instância da classe XmlSecureResolver.

Sobrecargas

Nome Description
XmlSecureResolver(XmlResolver, PermissionSet)

Inicializa uma nova instância da XmlSecureResolver classe com a XmlResolver e PermissionSet especificada.

XmlSecureResolver(XmlResolver, Evidence)

Inicializa uma nova instância da XmlSecureResolver classe com a XmlResolver e Evidence especificada.

XmlSecureResolver(XmlResolver, String)

Inicializa uma nova instância da XmlSecureResolver classe com a XmlResolver URL fornecida.

Comentários

Os três construtores fornecem três tipos de restrições de acesso:

Consulte os tópicos de referência do construtor para obter exemplos desses tipos de restrições.

XmlSecureResolver(XmlResolver, PermissionSet)

Inicializa uma nova instância da XmlSecureResolver classe com a XmlResolver e PermissionSet especificada.

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

O resolvedor XML que é encapsulado pelo XmlSecureResolver.

permissionSet
PermissionSet

O conjunto de permissões a ser aplicado ao subjacente XmlResolver. O XmlSecureResolver método chama o PermitOnly() método no conjunto de permissões antes de chamar o GetEntity(Uri, String, Type) método no resolvedor XML subjacente.

Exemplos

O exemplo a seguir constrói um XmlSecureResolver objeto usando um conjunto de permissões 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

Confira também

Aplica-se a

XmlSecureResolver(XmlResolver, Evidence)

Inicializa uma nova instância da XmlSecureResolver classe com a XmlResolver e Evidence especificada.

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

O resolvedor XML que é encapsulado pelo XmlSecureResolver.

evidence
Evidence

A evidência usada para criar a PermissionSet que será aplicada ao subjacente XmlResolver. Chama XmlSecureResolver o PermitOnly() método no criado PermissionSet antes de chamar GetEntity(Uri, String, Type) o subjacente XmlResolver.

Comentários

Aqui estão alguns cenários possíveis e o tipo de evidência a ser fornecido para cada cenário:

  • Se você estiver trabalhando em um ambiente totalmente confiável, use o assembly para criar a evidência:

    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)
    
  • Se você estiver trabalhando em um ambiente semi-confiável, terá código ou dados provenientes de uma fonte externa e sabe a origem da origem externa e tem um URI verificável, use o URI para criar a evidência:

    
    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)
    
  • Se você estiver trabalhando em um ambiente semi-confiável e tiver código ou dados provenientes de uma fonte externa, mas também não souber a origem da fonte externa:

    Defina o evidence parâmetro como null. Isso não permite acesso a recursos.

    - ou -

    Se o aplicativo exigir algum acesso aos recursos, solicite evidências do chamador.

Aplica-se a

XmlSecureResolver(XmlResolver, String)

Origem:
XmlSecureResolver.cs
Origem:
XmlSecureResolver.cs
Origem:
XmlSecureResolver.cs
Origem:
XmlSecureResolver.cs
Origem:
XmlSecureResolver.cs

Inicializa uma nova instância da XmlSecureResolver classe com a XmlResolver URL fornecida.

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

O resolvedor XML que é encapsulado pelo XmlSecureResolver.

securityUrl
String

A URL usada para criar a PermissionSet que será aplicada ao subjacente XmlResolver. As XmlSecureResolver chamadas PermitOnly() criadas PermissionSet antes de chamar GetEntity(Uri, String, Type) o subjacente XmlResolver.

Exemplos

Este exemplo usa o XmlSecureResolver(XmlResolver, String) construtor para criar um objeto que tem permissão XmlSecureResolver para acessar apenas o site da intranet local.

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

Comentários

Importante

Há diferenças na infraestrutura de segurança para o código em execução no CLR (common language runtime) do .NET Framework e para o código em execução no CLR integrado no Microsoft SQL Server 2005. Isso pode levar a casos em que o código desenvolvido para o CLR do .NET Framework opera de forma diferente quando usado no SQL SERVER CLR integrado. Uma dessas diferenças afeta a XmlSecureResolver classe quando você tem evidências baseadas em uma URL (ou seja, quando você usa o CreateEvidenceForUrl método ou o XmlSecureResolver(XmlResolver, String) construtor). O mecanismo de resolução de política do CLR integrado do SQL Server não usa as informações Url ou Zone. Em vez disso, ele concede permissões com base no GUID que o servidor adiciona quando os assemblies são carregados. Quando você usar o XmlSecureResolver no CLR integrado do SQL Server, forneça qualquer evidência necessária diretamente usando um PermissionSet especificado.

Aplica-se a