XmlSecureResolver Konstruktory

Definice

Inicializuje novou instanci XmlSecureResolver třídy.

Přetížení

Name Description
XmlSecureResolver(XmlResolver, PermissionSet)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a XmlResolver zadaným objektemPermissionSet.

XmlSecureResolver(XmlResolver, Evidence)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a XmlResolver zadaným objektemEvidence.

XmlSecureResolver(XmlResolver, String)

Inicializuje novou instanci XmlSecureResolver třídy s zadanou XmlResolver adresou URL.

Poznámky

Tři konstruktory poskytují tři typy omezení přístupu:

Příklady těchto typů omezení najdete v referenčních tématech konstruktoru.

XmlSecureResolver(XmlResolver, PermissionSet)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a XmlResolver zadaným objektemPermissionSet.

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)

Parametry

resolver
XmlResolver

Překladač XML, který je zabalen pomocí XmlSecureResolver.

permissionSet
PermissionSet

Oprávnění nastavená tak, aby se vztahovala na podkladovou XmlResolversadu . Volá XmlSecureResolver metodu PermitOnly() pro sadu oprávnění před voláním GetEntity(Uri, String, Type) metody v podkladovém překladače XML.

Příklady

Následující příklad vytvoří XmlSecureResolver objekt pomocí přizpůsobené sady oprávnění.


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

Viz také

Platí pro

XmlSecureResolver(XmlResolver, Evidence)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a XmlResolver zadaným objektemEvidence.

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)

Parametry

resolver
XmlResolver

Překladač XML, který je zabalen pomocí XmlSecureResolver.

evidence
Evidence

Důkazy použité k vytvoření PermissionSet , které budou použity na podkladové XmlResolver. Volání XmlSecureResolverPermitOnly() metody vytvořené PermissionSet před voláním GetEntity(Uri, String, Type) na podkladové XmlResolver.

Poznámky

Tady je několik možných scénářů a typ důkazů, které se mají poskytnout pro každý scénář:

  • Pokud pracujete v plně důvěryhodném prostředí, vytvořte pomocí sestavení důkaz:

    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)
    
  • Pokud pracujete v částečně důvěryhodném prostředí, máte kód nebo data pocházející z vnějšího zdroje a znáte původ vnějšího zdroje a máte ověřitelný identifikátor URI, pomocí tohoto identifikátoru URI vytvořte důkazy:

    
    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)
    
  • Pokud pracujete v částečně důvěryhodném prostředí a máte kód nebo data pocházející z vnějšího zdroje, ale neznáte původ vnějšího zdroje:

    Nastavte parametr na evidencenull. To neumožňuje přístup k prostředkům.

    nebo

    Pokud vaše aplikace vyžaduje přístup k prostředkům, požádejte volajícího o důkaz.

Platí pro

XmlSecureResolver(XmlResolver, String)

Zdroj:
XmlSecureResolver.cs
Zdroj:
XmlSecureResolver.cs
Zdroj:
XmlSecureResolver.cs
Zdroj:
XmlSecureResolver.cs
Zdroj:
XmlSecureResolver.cs

Inicializuje novou instanci XmlSecureResolver třídy s zadanou XmlResolver adresou 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)

Parametry

resolver
XmlResolver

Překladač XML, který je zabalen pomocí XmlSecureResolver.

securityUrl
String

Adresa URL použitá PermissionSet k vytvoření, která se použije u podkladového XmlResolverobjektu . Volání XmlSecureResolverPermitOnly() vytvořené PermissionSet před voláním GetEntity(Uri, String, Type) na podkladové XmlResolver.

Příklady

Tento příklad používá konstruktor k vytvoření objektu XmlSecureResolver(XmlResolver, String)XmlSecureResolver , který má povolený přístup pouze k místnímu intranetu webu.

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

Poznámky

Important

Existují rozdíly v infrastruktuře zabezpečení pro kód spuštěný v modulu CLR (Common Language Runtime) .NET Frameworku a pro kód spuštěný v modulu CLR, který je integrovaný v Microsoft SQL Server 2005. To může vést k případům, kdy kód vyvinutý pro .NET Framework CLR funguje jinak, když se používá na SQL Server integrovaném CLR. Jeden z těchto rozdílů ovlivňuje XmlSecureResolver třídu, pokud máte důkazy, které jsou založené na adrese URL (to znamená při použití CreateEvidenceForUrl metody nebo konstruktoru XmlSecureResolver(XmlResolver, String) ). Mechanismus řešení zásad integrovaného CLR v SQL Serveru nepoužívá informace typu Url ani Zone. Místo toho uděluje oprávnění na základě identifikátoru GUID, který server přidá při načtení sestavení. Pokud použijete XmlSecureResolver v integrovaném modulu CLR systému SQL Server, uveďte všechny požadované důkazy přímo pomocí zadaného PermissionSet.

Platí pro