这个安全警告意味着什么(.Net Process类)?

时间:2009-07-18 10:37:12

标签: c# .net security fxcop code-access-security

我正在使用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()'间接暴露给用户代码。查看以下可能暴露出绕过安全保护的方法的调用堆栈:

2 个答案:

答案 0 :(得分:11)

您的方法调用Foo调用Process.Start,该流程受链接需求的保护 完全信任。为了避免FxCop警告您的问题,您应该为方法添加链接请求或对相同权限的完全需求。

您可以通过添加到方法来修复它

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

请参阅http://msdn.microsoft.com/en-us/library/970x52db.aspx

答案 1 :(得分:1)