跳转至

访问权限

AccessRights 类属性

为了保护用户免受恶意代码的侵害,我们在沙盒环境中运行每个 cBot 或指标。 因此,cBot 和指标必须通过 AccessRights 类属性声明其所需的访问权限,如下所示。

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

AccessRights 属性有两个可能的值,如下所示:

  • None - 扩展程序只能访问平台提供的 API 数据。 它将无法访问平台之外的任何内容。
  • FullAccess - 扩展程序具有无限制的访问权限。 它可以访问互联网、读写文件、运行其他可执行文件、导入 WinApi 函数、使用 .NET 反射和创建窗口。 !!! note "注意"

    即使声明了 AccessRights.None,仍有几个 API 功能允许算法执行各种操作。

如果声明了 AccessRights.FullAccess,运行相关 cBot 或指标实例时将显示以下窗口。

Image title

安全异常

如果您的 cBot 或指标尝试执行受限操作,代码将抛出安全异常。

例如,如果一个 AccessRights.None 的 cBot 试图从文本文件中读取内容(不使用文件访问功能),它将被停止,并在日志中显示以下消息。

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.

避免此异常的最可靠方法是为所有扩展程序声明 AccessRights.None,除非您计划将它们分发给其他交易者。