Ir para o conteúdo

Direitos de acesso

A propriedade de classe AccessRights

Para proteger os utilizadores de código malicioso, executamos cada cBot ou indicador num ambiente sandbox. Como resultado, os cBots e indicadores devem declarar os seus direitos de acesso necessários através da propriedade de classe AccessRights como mostrado abaixo.

1
2
[Robot(AccessRights = AccessRights.None)]
public class SampleSARTrailingStop : Robot
1
2
[Indicator(AccessRights = AccessRights.FullAccess)]
public class SampleEMA :

Os dois valores possíveis para a propriedade AccessRights são os seguintes:

  • None - a extensão só tem acesso aos dados da API fornecidos pela plataforma. Não poderá aceder a nada fora da plataforma.
  • FullAccess - a extensão tem direitos de acesso ilimitados. Pode aceder à Internet, ler e escrever ficheiros, executar outros executáveis, importar funções WinApi, usar reflexão .NET e criar janelas. !!! note "Nota"

    Existem várias funcionalidades da API que ainda permitem que os algoritmos realizem várias ações mesmo quando AccessRights.None é declarado.

Se AccessRights.FullAccess for declarado, a seguinte janela será mostrada ao executar uma instância do cBot ou indicador em questão.

Image title

Exceção de segurança

Se o seu cBot ou indicador tentar realizar uma ação restrita, o código lançará uma exceção de segurança.

Por exemplo, se um cBot com AccessRights.None tentar ler de um ficheiro de texto (sem usar a funcionalidade de acesso a ficheiros), será interrompido e a seguinte mensagem aparecerá no registo.

Crashed in OnStart with SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

A forma mais segura de evitar esta exceção é declarar AccessRights.None para todas as suas extensões, a menos que planeie distribuí-las a outros traders.