Доступные подходы зависят от версии .NET.До .NET 4.0 в CLR применялась политика CAS, которая позволяла ограничивать разрешения для любой сборки.Однако, начиная с .NET 4.0, CLR больше не применял политику CAS, если вы не включили ее с помощью элемента NetFx40_LegacySecurityPolicy в файле app.config любого данного приложения.Хотя этот подход в настоящее время доступен, вы можете иметь в виду, что он может не поддерживаться в будущих версиях .NET Framework.
Новый стиль ограничения разрешений заключается в ограничении разрешений хостом, отличным от«голая» клр.Это то, что делает ASP.NET, и то, что вашей альтернативной хостинговой платформе нужно будет сделать, чтобы правильно реализовать это.Самый простой механизм для таких ограничений разрешений - через изолированную область приложения .Я незнаком с Topshelf, и их вступительные документы не дают понять, поддерживают ли они это.Тем не менее, это, вероятно, будет относительно простым улучшением, поэтому, возможно, стоит запросить эту функцию.