Поделиться через


Требование полного доверия для типов в сборке с атрибутом AllowPartiallyTrustedCallersAttribute

Обновлен: Ноябрь 2007

Когда сборка получает атрибут AllowPartiallyTrustedCallersAttribute, неявное требование LinkDemand, требующее от всех вызывающих объектов полной доверенности, запрещается. В некоторых ситуациях может возникнуть необходимость обеспечить возможность вызова определенных членов или классов в составе сборки из не вполне надежного кода, сохраняя защиту от не вполне надежного кода над остальными членами или классами этой же сборки. Следующие действия позволяют предоставить доступ к конкретным членам или классам из не вполне надежного кода, сохраняя запрет на доступ из него к остальным членам и классам.

  1. Подпишите код строгим именем.

  2. Примените атрибут AllowPartiallyTrustedCallersAttribute к сборке, чтобы не вполне надежные вызывающие объекты могли ее использовать.

  3. Примените требование полного доверия к определенному члену или классу в составе сборки, описанной в шаге 2, который необходимо защитить от не вполне надежных вызывающих объектов.

Ниже перечислены требования, которые могут быть применены к коду с целью ограничить доступ со стороны не вполне надежного кода.

  • Чтобы обеспечить требование LinkDemand для полного доверия, примените следующий атрибут к классу или члену.

    <PermissionSetAttribute(SecurityAction.LinkDemand, Name:="FullTrust")>
    
    [PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
    
  • Чтобы выполнить требование связывания, требующее от вызывающих объектов способности вызывать неуправляемый код, примените к классу или члену следующий атрибут.

    <SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode:=True)>
    
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode=true)]
    
  • Чтобы обеспечить требование наследования для полного доверия, примените к классу или члену следующий атрибут.

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

См. также

Основные понятия

Использование библиотек из не вполне надежного кода

Другие ресурсы

Управление доступом для кода