NEWS

[C#] Hướng dẫn chạy ứng dụng dưới quyền Administrator trong lập trình csharp

[C#] Hướng dẫn chạy ứng dụng dưới quyền Administrator trong lập trình csharp
Đăng bởi: Thảo Meo - Lượt xem: 12152 07:54:24, 14/09/2018C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn, cách cấu hình để khi build ứng dụng bắt buộc ứng dụng chạy ở chế độ Administrator (run as Administrator).

Trong lập trình C#, nhiều lúc các bạn có thao thác đến một số chức năng trong hệ thống Windows, thì hệ thống yêu cầu ứng dụng phải chạy ở chế độ Admin.

Ví dụ: Từ Windows 7 trở lên, nếu ứng dụng của bạn muốn ghi file vào ổ đĩa C: thì bạn cần phải có quyền Admin, mới có thể ghi được nội dung file lưu trữ xuống ổ đĩa này.

Hướng dẫn cấu hình Solution run chế độ admin.

- Đầu tiên, các bạn add thêm file manifest vào project như hình bên dưới:

manifest c#

Sau đó, ta file xong các bạn mở file và cấu hình như sau:

<trustinfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
    <requestedprivileges xmlns="urn:schemas-microsoft-com:asm.v3">
 
      <!-- UAC Manifest Options
           If you want to change the Windows User Account Control level replace the 
           requestedExecutionLevel node with one of the following.
 
      <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
      <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
      <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
 
          Specifying requestedExecutionLevel element will disable file and registry virtualization. 
          Remove this element if your application requires this virtualization for backwards
          compatibility.
      -->
      <requestedexecutionlevel level="requireAdministrator" uiaccess="false">
    </requestedexecutionlevel></requestedprivileges>
  </security>
</trustinfo>

- Trong phần comment UAC Manifest Options, có 3 chế độ chạy ứng dụng, trong ví dụ này mình chọn level = "requireAdministrator".

Vậy là đến đây là xong.

Bonus: Mình chia sẽ thêm hàm để cho các bạn kiểm tra, ứng dụng của bạn đang chạy có ở chế độ Administrator hay không?

Source code C#:

public static bool IsAdministrator()
{
    var identity = WindowsIdentity.GetCurrent();
    var principal = new WindowsPrincipal(identity);
    return principal.IsInRole(WindowsBuiltInRole.Administrator);
}

HAPPY CODING heart

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn chạy ứng dụng dưới quyền Administrator trong lập trình csharp
Đăng bởi: Thảo Meo - Lượt xem: 12152 07:54:24, 14/09/2018C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.