Partager via


Nécessité d'une confiance totale pour des types dans un assembly AllowPartiallyTrustedCallersAttribute

Mise à jour : novembre 2007

Lorsque AllowPartiallyTrustedCallersAttribute est placé sur un assembly, le LinkDemand implicite nécessitant un niveau de confiance suffisant pour tous les appelants est désactivé. Dans certaines situations, vous souhaitez parfois que certains membres ou classes dans un assembly puissent être appelés par du code d'un niveau de confiance partiel, tout en assurant la protection d'autres membres ou classes dans le même assembly contre du code d'un niveau de confiance partiel. Les étapes suivantes vous permettent de donner accès à certains membres ou classes à partir de code d'un niveau de confiance partiel tout en refusant l'accès à d'autres membres et classes à partir du code d'un niveau de confiance partiel :

  1. Signez l'assembly avec un nom fort.

  2. Appliquez l'attribut AllowPartiallyTrustedCallersAttribute à votre assembly afin que des appelants d'un niveau de confiance partiel puissent l'utiliser.

  3. Appliquez une demande pour une confiance totale au membre ou classe spécifique dans l'assembly à partir de l'étape 2 que vous voulez protéger des appelants d'un niveau de confiance partiel.

Les demandes suivantes peuvent être placées sur votre code afin de limiter l'accès par du code d'un niveau de confiance partiel :

  • Pour que LinkDemand soit d'une confiance totale, appliquez ce qui suit à une classe ou un membre.

    <PermissionSetAttribute(SecurityAction.LinkDemand, Name:="FullTrust")>
    
    [PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
    
  • Pour qu'une demande de liaison exige des appelants de pouvoir appeler du code non managé, appliquez ce qui suit à une classe ou membre.

    <SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode:=True)>
    
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode=true)]
    
  • Pour entraîner une demande d'héritage pour une confiance totale, appliquez ce qui suit à une classe ou membre.

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

Voir aussi

Concepts

Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel

Autres ressources

Sécurité d'accès du code