XmlSecureResolver Constructors

Definitie

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse.

Overloads

Name Description
XmlSecureResolver(XmlResolver, PermissionSet)

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse met de XmlResolver en PermissionSet opgegeven.

XmlSecureResolver(XmlResolver, Evidence)

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse met de XmlResolver en Evidence opgegeven.

XmlSecureResolver(XmlResolver, String)

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse met de opgegeven URL en de XmlResolver opgegeven URL.

Opmerkingen

De drie constructors bieden drie typen toegangsbeperkingen:

Zie de referentieonderwerpen voor constructor's voor voorbeelden van deze typen beperkingen.

XmlSecureResolver(XmlResolver, PermissionSet)

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse met de XmlResolver en PermissionSet opgegeven.

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)

Parameters

resolver
XmlResolver

De XML-resolver die wordt verpakt door de XmlSecureResolver.

permissionSet
PermissionSet

De machtigingenset die moet worden toegepast op de onderliggende XmlResolver. De XmlSecureResolver methode wordt aangeroepen PermitOnly() voor de machtigingenset voordat de GetEntity(Uri, String, Type) methode wordt aangeroepen voor de onderliggende XML-resolver.

Voorbeelden

In het volgende voorbeeld wordt een XmlSecureResolver object samengesteld met behulp van een aangepaste machtigingenset.


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

Zie ook

Van toepassing op

XmlSecureResolver(XmlResolver, Evidence)

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse met de XmlResolver en Evidence opgegeven.

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)

Parameters

resolver
XmlResolver

De XML-resolver die wordt verpakt door de XmlSecureResolver.

evidence
Evidence

Het bewijs dat wordt gebruikt om de PermissionSet gegevens te maken die worden toegepast op de onderliggende XmlResolvergegevens. De XmlSecureResolver methode wordt aangeroepen PermitOnly() op de gemaakte PermissionSet voordat de onderliggende GetEntity(Uri, String, Type)methode wordt aangeroepenXmlResolver.

Opmerkingen

Hier volgen enkele mogelijke scenario's en het type bewijs dat voor elk scenario moet worden verstrekt:

  • Als u in een volledig vertrouwde omgeving werkt, gebruikt u uw assembly om het bewijs te maken:

    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)
    
  • Als u in een semi-vertrouwde omgeving werkt, hebt u code of gegevens afkomstig van een externe bron en weet u de oorsprong van de externe bron en hebt u een verifieerbare URI, gebruikt u de URI om het bewijs te maken:

    
    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)
    
  • Als u in een semi-vertrouwde omgeving werkt en u code of gegevens hebt die afkomstig zijn van een externe bron, maar u niet weet wat de oorsprong is van de externe bron:

    Stel de evidence parameter in op null. Hiermee is er geen toegang tot bronnen.

    – of –

    Als voor uw toepassing toegang tot resources is vereist, vraagt u bewijs aan bij de beller.

Van toepassing op

XmlSecureResolver(XmlResolver, String)

Bron:
XmlSecureResolver.cs
Bron:
XmlSecureResolver.cs
Bron:
XmlSecureResolver.cs
Bron:
XmlSecureResolver.cs
Bron:
XmlSecureResolver.cs

Initialiseert een nieuw exemplaar van de XmlSecureResolver klasse met de opgegeven URL en de XmlResolver opgegeven URL.

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)

Parameters

resolver
XmlResolver

De XML-resolver die wordt verpakt door de XmlSecureResolver.

securityUrl
String

De URL die wordt gebruikt om de PermissionSet url te maken die wordt toegepast op de onderliggende XmlResolverurl. De XmlSecureResolver aanroepen PermitOnly() van de gemaakte PermissionSet voordat u de onderliggende GetEntity(Uri, String, Type)aanroeptXmlResolver.

Voorbeelden

In dit voorbeeld wordt de XmlSecureResolver(XmlResolver, String) constructor gebruikt om een XmlSecureResolver object te maken dat alleen toegang heeft tot uw lokale intranetsite.

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

Opmerkingen

Important

Er zijn verschillen in de beveiligingsinfrastructuur voor code die wordt uitgevoerd op de .NET Framework Common Language Runtime (CLR) en voor code die wordt uitgevoerd op de CLR die is geïntegreerd in Microsoft SQL Server 2005. Dit kan leiden tot gevallen waarin code die is ontwikkeld voor de .NET Framework CLR anders werkt wanneer deze wordt gebruikt op de SQL Server geïntegreerde CLR. Een van deze verschillen is van invloed op de XmlSecureResolver klasse wanneer u bewijs hebt dat is gebaseerd op een URL (dat wil gezegd, wanneer u de CreateEvidenceForUrl methode of de XmlSecureResolver(XmlResolver, String) constructor gebruikt). Het mechanisme voor beleidsomzetting van de geïntegreerde CLR van SQL Server maakt geen gebruik van de Url of Zone informatie. In plaats daarvan verleent het machtigingen op basis van de GUID die de server toevoegt wanneer assembly's worden geladen. Wanneer u de XmlSecureResolver geïntegreerde CLR van SQL Server gebruikt, dient u alle vereiste bewijzen rechtstreeks op te geven met behulp van een opgegeven PermissionSet.

Van toepassing op