6

VSTS 2008 + .Net 2.0 + C# を使用しています。そして、ビルド後にコード分析を実行しています。次の紛らわしいセキュリティ警告が表示されました。ここに警告と関連コードがありますが、何が間違っているのでしょうか? セキュリティ警告が表示された場合、それを修正するにはどうすればよいですか?

System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "IExplore.exe";
myProcess.StartInfo.Arguments = @"default.html";
myProcess.StartInfo.Verb = "runas";
myProcess.Start();

警告: CA2122: Microsoft.Security: 'TestHtml()' は、LinkDemand を持つ 'Process.Start()' を呼び出します。この呼び出しを行うことで、'Process.Start()' が間接的にユーザー コードに公開されます。セキュリティ保護を回避する方法を明らかにする可能性のある次のコール スタックを確認してください。

4

2 に答える 2

11

メソッドは、Full Trust のリンク要求によって保護されている Process.Start を呼び出す Foo を呼び出します。FxCop が警告している問題を回避するには、同じアクセス許可に対するリンク デマンドまたはフル デマンドをメソッドに追加する必要があります。

メソッドに追加することで修正できます

[PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]

http://msdn.microsoft.com/en-us/library/970x52db.aspxを参照してください

于 2009-07-18T10:45:11.510 に答える
1

セキュリティ警告とCA2122に関する詳細情報- リンク要求のあるメソッドを間接的に公開しないでください

于 2009-07-18T10:56:18.120 に答える