2012-01-11 10 views
5

Bir WPF uygulamasında (kendiliğinden barındırılan) WCF ile hizmetim var ve "Bu ad alanına erişiminiz, işleminiz için geçerli haklara sahip değil". Kullanıcılar, yönetici ayrıcalıklarına sahip olamaz. Bu nedenle, .manifest kullanmak bir çözüm değildir. Bağlantı noktaları dinamiktir, uygulama her defasında bir serbest bağlantı noktasını hesaplar, bu yüzden uygulama netsh tarafından birkaç kez dinlemesini yerleştirmelidir, çünkü bir ProcessStartInfo etki alanı yöneticisi ile kullanıyorum, ancak kullanıcının yönetici ayrıcalıklarına ihtiyacı olan işlemi başlatması için. Uygulamayı yönetici olarak çalıştırmak bir çözüm değildir, bu yüzden normal bir kullanıcının uygulamayı çalıştırabilmesini ve programın netsh'i etki alanı yöneticisi olarak bağlantı noktasına eklemesini istiyorum.WCF'de netsh ile yönetici ayrıcalıkları olmadan etki alanı yöneticisi olarak bağlantı noktaları ekleme

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); 

Çok teşekkürler

cevap

1

sorununuza yönelik olası bir çözüm için bu Stack Overflow question için kabul edilen yanıt bir göz atın:

Benim Süreç böyle bir şeydir. Cevapta özetlenen yaklaşım, yönetici gerektiren kodu, çalıştırıldığında uygun (ayrı) bir hesap altında yükseltilmiş ayrıcalık işlemlerini gerçekleştiren bir Windows servisine dağıtmaktır.

İlgili konular