特定の .NET 機能/クラスのコード アクセスを制限することはできますか?
たとえば、MVC CMS 用のプラグイン モジュールがあります。サードパーティのモジュールが File クラスを直接使用できるようにしたくありません。モジュールが独自の指定された「ルート」フォルダー(サンドボックス)内のファイルにのみアクセスできるように、APIにラップしたいと思います。そうしないと、モジュールは、CMS システム ファイルを含むサーバー全体にファイル アクセスできます。
特定の名前空間がフレームワークの特定の機能を使用することを制限する方法はありますか? それとも、私がとるべき別のアプローチがありますか?
概要を説明するには:
CMS ネームスペースはMyCms
すべてのモジュールは名前空間を取りますMyCms.Module.xxxxx
モジュールは、名前のメイン MVC 名前空間に組み込まれる単なる標準の MVC 構造であり、ルートは、要求をモジュール コントローラーにルーティングするように自動的に設定されます。
したがって、モジュールには ASP.NET フレームワークへの既定のアクセス権があります。可能であれば、MyCms.Module.xxxxx 名前空間が特定のことを実行できないように制限できるようにしたいと考えています。
ここで間違ったアプローチを取りましたか?正直なところ、私はインフラストラクチャを変更することに熱心ではありませんが、いたずらなモジュールからメインの CMS インフラストラクチャを適切に保護できない場合は、変更を余儀なくされる可能性があります。