что означает это предупреждение безопасности (класс .Net Process)? - PullRequest
6 голосов
/ 18 июля 2009

Я использую 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 ()» вызывает в «Process.Start ()», который имеет LinkDemand. При выполнении этого вызова Process.Start () косвенно подвергается пользовательскому коду. Просмотрите следующий стек вызовов, который может обойти защиту:

Ответы [ 2 ]

11 голосов
/ 18 июля 2009

Ваш метод вызывает Foo, который вызывает Process.Start, который защищен требованием ссылки для Полное доверие. Чтобы избежать проблемы, о которой вас предупреждает FxCop, вы должны добавить в метод запрос ссылки или полный запрос на те же разрешения.

Вы можете исправить это, добавив в свой метод

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

См. http://msdn.microsoft.com/en-us/library/970x52db.aspx

1 голос
...