В модели прозрачности критичные для безопасности методы помечаются атрибутом [SecurityCritical]
:
[SecurityCritical]
public Key GetTVRoomKey() { ... }
Все «опасные» методы (содержащие код, который, по мнению CLR, могут нарушить безопасность и позволить заключенному
escape) должен быть помечен [SecurityCritical]
или [SecuritySafeCritical]
. Это включает в себя:
- Не поддающиеся проверке (небезопасные) методы
Методы, которые вызывают неуправляемый код через P / Invoke или COM-взаимодействие
Методы, которые утверждают разрешения или вызывают требующие ссылки методы
Методы, которые вызывают методы [SecurityCritical]
Методы, переопределяющие виртуальные методы [SecurityCritical]
[SecurityCritical]
означает «этот метод может позволить вызывающему частичному вызову покинуть« песочницу ».
[SecuritySafeCritical]
означает, что «этот метод делает критические для безопасности вещи, но с соответствующими мерами безопасности
и так безопасно для частично доверенных абонентов ».
Так что да, в вашем случае - [SecurityCritical]
, безусловно, необходим, если вы хотите дополнительной безопасности, используйте [SecuritySafeCritical]