XmlSecureResolver Konstruktoren

Definition

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse.

Überlädt

XmlSecureResolver(XmlResolver, PermissionSet)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und PermissionSet.

XmlSecureResolver(XmlResolver, Evidence)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und Evidence.

XmlSecureResolver(XmlResolver, String)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und URL.

Hinweise

Die drei Konstruktoren bieten drei Arten von Zugriffsbeschränkungen:

Beispiele für diese Arten von Einschränkungen finden Sie in den Konstruktorreferenzthemen.

XmlSecureResolver(XmlResolver, PermissionSet)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und PermissionSet.

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)

Parameter

resolver
XmlResolver

Der XML-Resolver, der von XmlSecureResolver umschlossen ist.

permissionSet
PermissionSet

Die Berechtigung, die für die Anwendung auf den zugrunde liegenden XmlResolver festgelegt ist. Der XmlSecureResolver ruft die PermitOnly()-Methode in der Berechtigung auf, die vor dem Aufruf der GetEntity(Uri, String, Type)-Methode im zugrunde liegenden XML Resolver festgelegt wurde.

Beispiele

Im folgenden Beispiel wird ein Objekt mithilfe eines XmlSecureResolver angepassten Berechtigungssatzes erstellt.

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

Siehe auch

Gilt für

XmlSecureResolver(XmlResolver, Evidence)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und Evidence.

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)

Parameter

resolver
XmlResolver

Der XML-Resolver, der von XmlSecureResolver umschlossen ist.

evidence
Evidence

Der Beweis, der zum Erstellen von PermissionSet verwendet wird, welcher auf den zugrunde liegenden XmlResolver angewendet wird. Der XmlSecureResolver ruft die PermitOnly()-Methode für das erstellte PermissionSet auf, bevor GetEntity(Uri, String, Type) für den zugrunde liegenden XmlResolver aufgerufen wird.

Hinweise

Nachfolgend finden Sie einige mögliche Szenarien und die Art der Nachweise, die für jedes Szenario bereitgestellt werden sollen:

  • Wenn Sie in einer vollständig vertrauenswürdigen Umgebung arbeiten, verwenden Sie Ihre Assembly, um die Nachweise zu erstellen:

    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)
    
  • Wenn Sie in einer halbvertrauenswürdigen Umgebung arbeiten, verfügen Sie über Code oder Daten, die aus einer externen Quelle stammen, und Sie wissen den Ursprung der externen Quelle und haben einen nachweisbaren URI, verwenden Sie den URI, um die Nachweise zu erstellen:

    
    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)
    
  • Wenn Sie in einer halbvertrauenswürdigen Umgebung arbeiten und Code oder Daten aus einer externen Quelle haben, aber Sie wissen nicht, ob die Quelle außerhalb der Quelle liegt:

    Setzen Sie den evidence-Parameter auf null. Dadurch kann nicht mehr auf Ressourcen zugegriffen werden.

    - oder -

    Wenn die Anwendung den Zugriff auf einige Ressourcen verlangt, fordern Sie einen Beweis vom Aufrufer an.

Gilt für

XmlSecureResolver(XmlResolver, String)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und 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)

Parameter

resolver
XmlResolver

Der XML-Resolver, der von XmlSecureResolver umschlossen ist.

securityUrl
String

Die URL zum Erstellen des PermissionSet, das auf den zugrunde liegenden XmlResolver angewendet wird. Der XmlSecureResolver ruft PermitOnly() für das erstellte PermissionSet auf, bevor GetEntity(Uri, String, Type) für den zugrunde liegenden XmlResolver aufgerufen wird.

Beispiele

In diesem Beispiel wird der XmlSecureResolver(XmlResolver, String) Konstruktor verwendet, um ein XmlSecureResolver Objekt zu erstellen, das nur auf Ihre lokale Intranetwebsite zugreifen darf.

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

Hinweise

Wichtig

Es gibt Unterschiede in der Sicherheitsinfrastruktur für Code, der auf der .NET Framework Common Language Runtime (CLR) ausgeführt wird, und für Code, der auf dem CLR ausgeführt wird, der in Microsoft SQL Server 2005 integriert ist. Dies kann zu Fällen führen, in denen Code, der für den .NET Framework CLR entwickelt wurde, anders funktioniert, wenn er auf dem SQL Server integrierten CLR verwendet wird. Eine dieser Unterschiede wirkt sich auf die XmlSecureResolver Klasse aus, wenn Sie Nachweise haben, die auf einer URL basieren (das heißt, wenn Sie die CreateEvidenceForUrl Methode oder den XmlSecureResolver(XmlResolver, String) Konstruktor verwenden). Der Richtlinienauflösungsmechanismus des integrierten CLR SQL Server verwendet die Url informationen Zone nicht. Stattdessen gewährt sie Berechtigungen basierend auf der GUID, die der Server hinzufügt, wenn Assemblys geladen werden. Wenn Sie die XmlSecureResolver in der SQL Server integrierten CLR verwenden, stellen Sie alle erforderlichen Nachweise direkt mithilfe einer angegebenen .PermissionSet

Gilt für