コンパイラの警告 (レベル 1) CS0688
更新 : 2007 年 11 月
エラー メッセージ
'method1' はリンク要求を含んでいますが、リンク要求を含んでいない 'method2' をオーバーライドまたは実装します。セキュリティに問題が発生する可柏ォがあります。
派生クラスのメソッドで設定されたリンク確認要求は、基本クラスのメソッドを呼び出すことによって容易に迂回されてしまいます。万全なセキュリティを確保するには、基本クラスのメソッドについても、リンク確認要求を使用する必要があります。詳細については、「Demand と LinkDemand」を参照してください。
使用例
次の例では CS0688 エラーが生成されます。基本クラスに変更を加えずにこの警告を解決するには、オーバーライドするメソッドからセキュリティ属性を削除します。これで、セキュリティ上の問題が解決されるわけではありません。
// CS0688.cs
// compile with: /W:1
using System;
using System.Security.Permissions;
class Base
{
//Uncomment the following line to close the security hole
//[FileIOPermission(SecurityAction.LinkDemand, All=@"C:\\")]
public virtual void DoScaryFileStuff()
{
}
}
class Derived: Base
{
[FileIOPermission(SecurityAction.LinkDemand, All=@"C:\\")] // CS0688
public override void DoScaryFileStuff()
{
}
static void Main()
{
}
}