Saltar a contenido

Derechos de acceso

La propiedad de clase AccessRights

Para proteger a los usuarios del código malicioso, ejecutamos cada cBot o indicador en un entorno aislado. Como resultado, los cBots e indicadores deben declarar sus derechos de acceso requeridos a través de la propiedad de clase AccessRights como se muestra a continuación.

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

Los dos posibles valores para la propiedad AccessRights son los siguientes:

  • None - la extensión solo tiene acceso a los datos de la API proporcionados por la plataforma. No podrá acceder a nada fuera de la plataforma.
  • FullAccess - la extensión tiene derechos de acceso ilimitados. Puede acceder a Internet, leer y escribir archivos, ejecutar otros ejecutables, importar funciones de WinApi, usar reflexión .NET y crear ventanas. !!! note "Nota"

    Hay varias funciones de la API que aún permiten a los algoritmos realizar diversas acciones incluso cuando se declara AccessRights.None.

Si se declara AccessRights.FullAccess, se mostrará la siguiente ventana al ejecutar una instancia del cBot o indicador en cuestión.

Image title

Excepción de seguridad

Si su cBot o indicador intenta realizar una acción restringida, el código lanzará una excepción de seguridad.

Por ejemplo, si un cBot con AccessRights.None intenta leer de un archivo de texto (sin usar la función de acceso a archivos), se detendrá y aparecerá el siguiente mensaje en el registro.

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.

La forma más segura de evitar esta excepción es declarar AccessRights.None para todas sus extensiones a menos que planee distribuirlas a otros operadores.