Bỏ qua

Quyền truy cập

Thuộc tính lớp AccessRights

Để bảo vệ người dùng khỏi mã độc, chúng tôi chạy mọi cBot hoặc chỉ báo trong một môi trường sandbox. Do đó, các cBot và chỉ báo phải khai báo quyền truy cập cần thiết của chúng thông qua thuộc tính lớp AccessRights như được hiển thị bên dưới.

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

Hai giá trị có thể có cho thuộc tính AccessRights như sau:

  • None - tiện ích mở rộng chỉ có quyền truy cập vào dữ liệu API do nền tảng cung cấp. Nó sẽ không thể truy cập bất cứ thứ gì bên ngoài nền tảng.
  • FullAccess - tiện ích mở rộng có quyền truy cập không giới hạn. Nó có thể truy cập Internet, đọc và ghi tệp, chạy các tệp thực thi khác, nhập các hàm WinApi, sử dụng phản chiếu .NET và tạo cửa sổ. !!! note "Ghi chú"

    Có một số tính năng API vẫn cho phép các thuật toán thực hiện các hành động khác nhau ngay cả khi AccessRights.None được khai báo.

Nếu AccessRights.FullAccess được khai báo, cửa sổ sau sẽ được hiển thị khi chạy một phiên bản của cBot hoặc chỉ báo đang được đề cập.

Image title

Ngoại lệ bảo mật

Nếu cBot hoặc chỉ báo của bạn cố gắng thực hiện một hành động bị hạn chế, mã sẽ ném ra một ngoại lệ bảo mật.

Ví dụ, nếu một cBot với AccessRights.None cố gắng đọc từ một tệp văn bản (mà không sử dụng tính năng truy cập tệp), nó sẽ bị dừng và thông báo sau sẽ xuất hiện trong nhật ký.

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.

Cách chắc chắn nhất để tránh ngoại lệ này là khai báo AccessRights.None cho tất cả các tiện ích mở rộng của bạn trừ khi bạn có kế hoạch phân phối chúng cho các nhà giao dịch khác.