XmlSecureResolver XmlSecureResolver XmlSecureResolver XmlSecureResolver Constructors

Definition

Überlädt

XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und PermissionSet.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und Evidence.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und URL.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

Hinweise

Die drei Konstruktoren geben drei Arten von zugriffseinschränkungen:The three constructors provide three types of access restrictions:

Finden Sie in den Konstruktor Referenzthemen für die Beispiele für diese Arten von Einschränkungen.See the constructor reference topics for examples of these types of restrictions.

XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und PermissionSet.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

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

Parameter

resolver
XmlResolver XmlResolver XmlResolver XmlResolver

Der XML-Resolver, der von XmlSecureResolver umschlossen ist.The XML resolver that is wrapped by the XmlSecureResolver.

permissionSet
PermissionSet PermissionSet PermissionSet PermissionSet

Die Berechtigung, die für die Anwendung auf den zugrunde liegenden XmlResolver festgelegt ist.The permission set to apply to the underlying XmlResolver. 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.The XmlSecureResolver calls the PermitOnly() method on the permission set before calling the GetEntity(Uri, String, Type) method on the underlying XML resolver.

Beispiele

Das folgende Beispiel erstellt eine XmlSecureResolver Objekt, indem Sie einen benutzerdefinierten Berechtigungssatz auf.The following example constructs an XmlSecureResolver object by using a customized permission set.

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

XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und Evidence.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

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

Parameter

resolver
XmlResolver XmlResolver XmlResolver XmlResolver

Der XML-Resolver, der von XmlSecureResolver umschlossen ist.The XML resolver that is wrapped by the XmlSecureResolver.

evidence
Evidence Evidence Evidence Evidence

Der Beweis, der zum Erstellen von PermissionSet verwendet wird, welcher auf den zugrunde liegenden XmlResolver angewendet wird.The evidence used to create the PermissionSet that will be applied to the underlying XmlResolver. 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.The XmlSecureResolver calls the PermitOnly() method on the created PermissionSet before calling GetEntity(Uri, String, Type) on the underlying XmlResolver.

Hinweise

Hier sind einige mögliche Szenarios sowie den Beweistyp für jedes Szenario bereit:Here are some possible scenarios and the type of evidence to provide for each scenario:

  • Wenn Sie in einer vollständig vertrauenswürdigen Umgebung arbeiten, verwenden Sie die Assembly, um den Beweis zu erstellen:If you are working in a fully trusted environment, use your assembly to create the evidence:

    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 teilweise vertrauenswürdigen Umgebung arbeiten, Sie verfügen über Code oder Daten aus einer externen Quelle, und Sie kennen den Ursprung der externen Quelle und einen überprüfbaren URI, den URI verwenden, um den Beweis zu erstellen:If you are working in a semi-trusted environment, you have code or data coming from an outside source, and you know the origin of the outside source and have a verifiable URI, use the URI to create the evidence:

    
    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 arbeiten einer teilweise vertrauenswürdigen Umgebung, und Sie verfügen über Code oder Daten aus einer externen Quelle, aber Sie wissen nicht, den Ursprung der externen Quelle, entweder:If you are working in a semi-trusted environment and you have code or data coming from an outside source, but you don't know the origin of the outside source, either:

    Setzen Sie den evidence-Parameter auf null.Set the evidence parameter to null. Dadurch kann nicht mehr auf Ressourcen zugegriffen werden.This allows no access to resources.

    - oder --or-

    Wenn die Anwendung den Zugriff auf einige Ressourcen verlangt, fordern Sie einen Beweis vom Aufrufer an.If your application requires some access to resources, request evidence from the caller.

XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und URL.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::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 XmlResolver XmlResolver XmlResolver

Der XML-Resolver, der von XmlSecureResolver umschlossen ist.The XML resolver that is wrapped by the XmlSecureResolver.

securityUrl
String String String String

Die URL zum Erstellen des PermissionSet, das auf den zugrunde liegenden XmlResolver angewendet wird.The URL used to create the PermissionSet that will be applied to the underlying XmlResolver. Der XmlSecureResolver ruft PermitOnly() für das erstellte PermissionSet auf, bevor GetEntity(Uri, String, Type) für den zugrunde liegenden XmlResolver aufgerufen wird.The XmlSecureResolver calls PermitOnly() on the created PermissionSet before calling GetEntity(Uri, String, Type) on the underlying XmlResolver.

Beispiele

Dieses Beispiel verwendet die XmlSecureResolver(XmlResolver, String) Konstruktor zur Erstellung einer XmlSecureResolver -Objekt, das nur die lokale Intranetsite zugreifen darf.This example uses the XmlSecureResolver(XmlResolver, String) constructor to create an XmlSecureResolver object that is allowed to access your local intranet site only.

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, die auf .NET Framework common Language Runtime (CLR) ausgeführt wird und für Code, der ausgeführt wird, in der CLR, die in Microsoft SQL Server 2005 integriert ist.There are differences in the security infrastructure for code running on the .NET Framework common language runtime (CLR) and for code running on the CLR that is integrated within Microsoft SQL Server 2005. Dies kann auf zwei Fälle führen, in denen Code entwickelt wurden, für die .NET Framework-CLR anders ausgeführt wird, wenn auf dem SQL Server verwendet die CLR integriert.This can lead to cases where code developed for the .NET Framework CLR operates differently when used on the SQL Server integrated CLR. Einer dieser Unterschiede wirkt sich auf die XmlSecureResolver Klasse, wenn Sie Beweise, die in einer URL basiert (d. h. bei Verwendung von der CreateEvidenceForUrl Methode oder die XmlSecureResolver(XmlResolver, String) Konstruktor).One of these differences affects the XmlSecureResolver class when you have evidence that is based on a URL (that is, when you use the CreateEvidenceForUrl method or the XmlSecureResolver(XmlResolver, String) constructor). Die Richtlinie Mechanismus von SQL Server integrierten CLR Lösung verwendet keine der Url oder Zone Informationen.The policy resolution mechanism of the SQL Server integrated CLR does not use the Url or Zone information. Stattdessen erteilt anhand der GUID, die der Server hinzufügt, wenn Assemblys geladen werden.Instead, it grants permissions based on the GUID that the server adds when assemblies are loaded. Bei Verwendung der XmlSecureResolver in der SQL Server integrierten CLR verwenden, geben Sie alle erforderlichen Beweise direkt mithilfe eines angegebenen PermissionSet.When you use the XmlSecureResolver in the SQL Server integrated CLR, provide any required evidence directly by using a specified PermissionSet.

Gilt für: