2011-01-11 32 views
8

Tôi muốn hỏi rằng phương thức/lớp nào được cho phép trong Medium Trust. Ví dụ: liệu các phương pháp này có được phép không?Giấy phép phản chiếu nào được phép trong Medium Trust?

GetProperties, GetMethods, Activator.CreateInstance, Assembly.Version, AssemblyName.Name

Xin vui lòng cho tôi biết đó là phương pháp được cho phép.

Trả lời

3

GetMethods và Activator.CreateInstance phải được cho phép IIRC, trong khi AssemblyName và Assembly.Version thì không. Tôi đã sử dụng hai phương thức đầu tiên trong môi trường Medium-Trust và hai phương thức sau không hoạt động. Cách tốt nhất chỉ là thông qua thử và lỗi thực sự. Cũng có thể giúp bằng cách sử dụng Reflector khi bạn gặp khó khăn, để tìm ra lý do tại sao không được phép (thông thường [PrincipalPermission (SecurityAction.Demand, AspNetHostingPermission.High/Full)] thuộc tính trên một lớp ở đâu đó cao hơn ngăn xếp cuộc gọi) .

HTH,

Benjamin

+0

Tôi nghĩ điều này rất bực bội vì chúng tôi không thể biết được phương thức nào có sẵn và phương thức nào không có? – abcplex

3

Các công cụ như permview (NET 1.1 chỉ) hoặc permcalc (.NET 2.0) có thể giúp cho bạn biết về sự cho phép an ninh đòi hỏi lắp ráp hoặc lắp ráp sẽ yêu cầu; nó dễ dàng hơn một chút so với phân tích cơ sở dùng thử và lỗi vì bạn có thể quên tự thực hiện đường dẫn mã để cố gắng thực hiện một yêu cầu liên quan đến bảo mật.

Thật không may tài liệu MSDN không liệt kê rõ ràng các yêu cầu bảo mật của mọi phương thức hoặc cuộc gọi thuộc tính.