Как правильно вызывать неуправляемый код, такой как COM API, через взаимодействие .Net из кода, который выполняется в частично доверенной среде?
При разработке ASP.Net WebPart для Microsoft SharePoint мне приходилось взаимодействовать с другой системой через ее COM API. Я временно решил эту проблему, изменив разрешения SharePoint на полную. Позже я усовершенствовал это, внедрив настраиваемую безопасность поверх минимальных настроек, которая дает разрешение SharePoint UnmanagedCode, но это не так уж и много улучшений, поскольку неуправляемый код может пропустить остальную часть CAS.
Из того, что я собрал, мне, вероятно, нужна полностью доверенная сборка, которая позволяет частично доверенным вызывающим сторонам и действует как слой между управляемым и неуправляемым доменами. Кроме того, я бы предположил, что есть необходимость в некоторых дополнительных настройках, которые позволяют частично доверенному коду вызывать полностью доверенный код без полностью доверенного кода, страдающего от разрешений частично доверенного кода.
Так, как правильно и как это реализовать на практике?