クラスが独自のカスタムセキュリティ属性を使用していることを確認するにはどうすればよいですか?リフレクションを使用して通常の属性を取得できることは知っていますが、以下に示すようにカスタム属性がセキュリティ属性に基づいている場合、リフレクションはそれを表示しません。それを確認する方法はありますか?
これが必要な理由は、クラウドベースのシステムにロードされるプラグインがセキュリティ属性を使用する必要があることを確認して、ロードされるクラスが制限されたファイルなどにアクセスできないようにするためです。
これが私が使用しているカスタムセキュリティクラスです:
public class PluginSection : CodeAccessSecurityAttribute
{
public PluginSection(SecurityAction action)
: base(action)
{
}
public override IPermission CreatePermission()
{
// WebSites.GetInstance().LocalBaseDir returns the base directory where the class has accesss to login
return new FileIOPermission(FileIOPermissionAccess.Write, WebSites.GetInstance().LocalBaseDir);
}
}
FileIOPermissionが機能するように、CodeAccessSecurityAttributeに基づくクラスを使用する必要があります。
また、ロードされているプラグインのアクセスを制限する別の方法がある場合は、それも使用できます。