Sdílet prostřednictvím


XmlSecureResolver Konstruktory

Definice

Inicializuje novou instanci XmlSecureResolver třídy.

Přetížení

XmlSecureResolver(XmlResolver, PermissionSet)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a PermissionSet zadaným objektemXmlResolver.

XmlSecureResolver(XmlResolver, Evidence)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a Evidence zadaným objektemXmlResolver.

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 PermissionSet zadaným objektemXmlResolver.

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 .XmlSecureResolver

permissionSet
PermissionSet

Sada oprávnění, která se má použít u podkladového objektu XmlResolver. Volá XmlSecureResolver metodu PermitOnly() pro sadu oprávnění před voláním GetEntity(Uri, String, Type) metody na podkladovém překladač XML.

Příklady

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

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

Viz také

Platí pro

XmlSecureResolver(XmlResolver, Evidence)

Inicializuje novou instanci XmlSecureResolver třídy se zadaným a Evidence zadaným objektemXmlResolver.

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 .XmlSecureResolver

evidence
Evidence

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

Poznámky

Tady jsou některé možné scénáře a typ důkazů, které mají být k dispozici pro každý scénář:

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

    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í identifikátoru URI vytvořte důkaz:

    
    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:

    evidence Nastavte parametr na null. 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)

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 .XmlSecureResolver

securityUrl
String

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

Příklady

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

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

Poznámky

Důležité

Existují rozdíly v infrastruktuře zabezpečení pro kód spuštěný v modulu CLR (Common Language Runtime) .NET Framework common language runtime (CLR) a kód spuštěný v modulu CLR, který je integrovaný v rámci Microsoft SQL Server 2005. To může vést k případům, kdy kód vyvinutý pro .NET Framework CLR funguje odlišně při použití v SQL Server integrovaném CLR. Jeden z těchto rozdílů ovlivňuje XmlSecureResolver třídu, pokud máte důkazy 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 SQL Server nepoužívá Url ani Zone informace. Místo toho uděluje oprávnění na základě identifikátoru GUID, který server přidá při načtení sestavení. Při použití XmlSecureResolver v SQL Server integrované CLR poskytnout všechny požadované důkazy přímo pomocí zadaného PermissionSet.

Platí pro