Freigeben über


Erzwingen vollständiger Vertrauenswürdigkeit für Typen in einer AllowPartiallyTrustedCallersAttribute-Assembly

Aktualisiert: November 2007

Wenn das AllowPartiallyTrustedCallersAttribute in einer Assembly platziert ist, wird die implizite LinkDemand deaktiviert, mit der von allen Aufrufern die vollständige Vertrauenswürdigkeit gefordert wird. In einigen Situationen empfiehlt es sich, dass bestimmte Member oder Klassen in einer Assembly von teilweise vertrauenswürdigem Code aufgerufen werden können, während andere Member oder Klassen in derselben Assembly vor teilweise vertrauenswürdigem Code geschützt werden. Führen Sie folgende Schritte aus, um den Zugriff auf bestimmte Member oder Klassen aus teilweise vertrauenswürdigem Code heraus zuzulassen, während der Zugriff auf andere Member und Klassen aus teilweise vertrauenswürdigem Code verweigert wird:

  1. Signieren Sie den Code mit einem starken Namen.

  2. Wenden Sie das AllowPartiallyTrustedCallersAttribute-Attribut auf die Assembly an, sodass sie von teilweise vertrauenswürdigen Aufrufern verwendet werden kann.

  3. Wenden Sie eine Forderung nach vollständiger Vertrauenswürdigkeit auf diejenigen Member oder Klassen in der Assembly aus Schritt 2 an, die Sie vor teilweise vertrauenswürdigen Aufrufern schützen möchten.

Folgende Forderungen können im Code platziert werden, um den Zugriff durch teilweise vertrauenswürdigen Code einzuschränken:

  • Übernehmen Sie folgenden Code für eine Klasse oder einen Member, um eine LinkDemand für vollständige Vertrauenswürdigkeit auszulösen.

    <PermissionSetAttribute(SecurityAction.LinkDemand, Name:="FullTrust")>
    
    [PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
    
  • Übernehmen Sie folgenden Code für eine Klasse oder einen Member, um eine Verknüpfungsforderung auszulösen, die verlangt, dass die Aufrufer unverwalteten Code aufrufen können.

    <SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode:=True)>
    
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode=true)]
    
  • Übernehmen Sie folgenden Code für eine Klasse oder ein Member, um eine Vererbungsforderung für vollständige Vertrauenswürdigkeit auszulösen.

    <PermissionSet(SecurityAction.InheritanceDemand, Name:="FullTrust")>
    
    [PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]
    

Siehe auch

Konzepte

Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code

Weitere Ressourcen

Codezugriffssicherheit