2012-01-11 30 views
5

Tôi có dịch vụ với WCF trong ứng dụng WPF (tự lưu trữ) và tôi có lỗi điển hình "Quy trình của bạn không có quyền truy cập vào không gian tên này". Người dùng không thể có đặc quyền quản trị để sử dụng tệp .manifest không phải là giải pháp. Các cổng là động, ứng dụng tính cổng miễn phí mỗi lần chạy, vì vậy ứng dụng phải chèn cổng nghe bởi netsh nhiều lần Tôi sử dụng ProcessStartInfo với quản trị viên tên miền, nhưng để bắt đầu quá trình người dùng cần quyền quản trị. Chạy ứng dụng với tư cách quản trị viên không phải là giải pháp, vì vậy tôi cần một người dùng bình thường có thể chạy ứng dụng và chương trình sẽ thêm netsh vào vai quản trị viên tên miền.Thêm cổng với netsh trong WCF làm quản trị viên miền không có đặc quyền quản trị

Process của tôi là một cái gì đó như thế này:

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

Trả lời

1

Hãy xem câu trả lời chấp nhận cho Stack Overflow question này cho một giải pháp khả thi cho vấn đề của bạn. Cách tiếp cận được nêu trong câu trả lời là giải mã mã yêu cầu quản trị viên ra một dịch vụ Windows thực hiện các hoạt động đặc quyền nâng cao trong một tài khoản thích hợp (tách biệt) khi được gọi.

Các vấn đề liên quan