2012-01-11 11 views
5

Mam usługę z WCF w aplikacji WPF (self-hosted) i mam typowy błąd "Twój proces nie ma uprawnień dostępu do tego obszaru nazw". Użytkownicy nie mogą mieć uprawnień administratora, więc użycie .manifest nie jest rozwiązaniem. Porty są dynamiczne, aplikacja oblicza wolny port za każdym razem, gdy jest uruchomiony, więc aplikacja musi kilka razy wstawić port nasłuchiwania netsh Używam ProcessStartInfo z administratorem domeny, ale aby rozpocząć proces użytkownik potrzebuje uprawnień administratora. Uruchom aplikację jako administrator i nie jest rozwiązaniem, więc potrzebuję, aby normalny użytkownik mógł uruchomić aplikację, a program doda port przez netsh jako administrator domeny.Dodaj porty z netsh w WCF jako administrator domeny bez uprawnień administratora

mój proces jest mniej więcej tak:

ProcessStartInfo psi = new ProcessStartInfo("netsh", parameter); 
     SecureString ss = new SecureString(); 

      for (int i = 0; i < adminPass.Length; i++) 
       ss.AppendChar(adminPass[i]); 

      psi.Password = ss; 
      psi.UserName = Admin; 
      psi.Domain = Domain; 
      psi.Verb = "runas"; 
      psi.RedirectStandardOutput = false; 
      psi.CreateNoWindow = true; 
      psi.WindowStyle = ProcessWindowStyle.Hidden; 
      psi.UseShellExecute = false; 
      Process.Start(psi); 

Thanks a lot

Odpowiedz

1

przyjrzeć zaakceptowanej odpowiedzi na ten Stack Overflow question do ewentualnego rozwiązania problemu. Podejście opisane w odpowiedzi polega na wyodrębnieniu kodu wymagającego administratora do usługi Windows, która wykonuje operacje podniesionego przywileju na odpowiednim (oddzielnym) koncie po wywołaniu.

Powiązane problemy