Размещение .NET CLR в приложении C ++: домен изолированного приложения (CAS)

TL; DR; Как я могу создать изолированную AppDomain (настройку CAS) из приложения C ++?

Длинная версия:

Я размещаю .NET CLR в приложении C ++, и все работает нормально … Однако мой домен приложений полностью доверяет, и я хотел бы иметь более детальный контроль над тем, что он может делать (например, настраивать PermissionSets и т. Д.). .) так как я буду загружать неизвестные сборки, которые потенциально могут привести к повреждению.

Это суть этого:

// Create instance (CLRCreateInstance)
// Get meta-host, CorRuntimeHost, etc.
// Start the CLR
// ...

В конце концов у меня есть все, что мне нужно для создания домена приложений (пожалуйста, сделайте вид, что я на самом деле обрабатываю исключения, тестирую HRESULT для каждого из этих вызовов и т. Д.):

pCorRuntimeHost->CreateDomainSetup(&spAppDomainSetupThunk);
spAppDomainSetupThunk->QueryInterface(IID_PPV_ARGS(&spAppDomainSetup));

spAppDomainSetup->put_ApplicationBase(_bstr_t(L"C:\\PretendThisIsNotHardCoded"));
spAppDomainSetup->put_ApplicationName(appDomainName);

pCorRuntimeHost->CreateDomainEx(appDomainName, spAppDomainSetupThunk, 0, &spAppDomainThunk);
spAppDomainThunk->QueryInterface(IID_PPV_ARGS(&spAppDomain));

// AppDomain ready to go, and full trust (at least on .NET 4)

Любые идеи или примеры кода приветствуются.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …