В модели прозрачности методы, критические с точки зрения безопасности, помечаются с помощью атрибута [SecurityCritical]:
[SecurityCritical]
public Key GetTVRoomKey() { ... }
Все “опасные” методы (содержащие код, который среда CLR считает нарушающим безопасность) должны быть помечены посредством атрибута [SecurityCritical] или [SecuritySafeCritical]. В число таких методов входят:
• непроверяемые (unsafe) методы;
• методы, которые обращаются к неуправляемому коду через P/Invoke или взаимодействие с СОМ;
• методы, которые утверждают разрешения или вызывают методы с требованиями связывания;
• методы, которые вызывают методы [SecurityCritical];
• методы, которые переопределяют виртуальные методы [SecurityCritical].
Атрибут [SecurityCritical] означает: “данный метод может разрешить вызывающей сборке с частичным доверием покинуть песочницу”.
Атрибут [SecuritySafeCritical] означает: “данный метод выполняет критические с точки зрения безопасности действия — но с соответствующими защ