Sto usando VSTS 2008 + .Net 2.0 + C#. E sto eseguendo l'analisi del codice dopo la compilazione. Ho ricevuto il seguente avviso di sicurezza confuso. Ecco l'avvertimento e il codice correlato, qualche idea, cosa c'è che non va? Se c'è un avviso di sicurezza, come risolverlo?cosa significa questo avviso di sicurezza (. .net Classe di processo)?
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "IExplore.exe";
myProcess.StartInfo.Arguments = @"default.html";
myProcess.StartInfo.Verb = "runas";
myProcess.Start();
avvertimento: CA2122: Microsoft.Security: 'TestHtml()' chiama in 'Process.Start()' che ha un LinkDemand. Effettuando questa chiamata, "Process.Start()" è indirettamente esposto al codice utente. Rivedere il seguente stack di chiamate che potrebbe esporre un modo per aggirare la protezione di sicurezza:
Grazie, ma il codice è costruire errore. Errore Il nome "True" non esiste nel contesto corrente. Qualche idea? Sto usando .Net 2.0 e .Net 2.0 non lo supporta? – George2
Ciao blowdart, ho alcune nuove idee e penso che non sia un buco di sicurezza. Supponiamo che il metodo Foo chiama TestHtml e TestHtml chiama Process.Start. Anche se TestHtml non è abilitato con LinkDemand, sice Process.Start è abilitato con LinkDemand, controllerà sempre l'autorizzazione di TestHtml (TestHtml è il chiamante immediato). Quindi, anche se Foo non ha abbastanza permessi, la chiamata da TestHtml a Process.Start fallirà. Quindi, penso che non ci siano problemi di sicurezza. Qualche commento? – George2
@George, solo indovinando ora, ma sarebbe meglio controllare i requisiti di sicurezza il prima possibile, se TestHtml cambierebbe qualsiasi stato di applicazione prima di fallire. – sisve