Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Membezakan Antara Keistimewaan Pentadbir dan Pentadbir Ditingkatkan dalam .NET?
Mengetahui Tahap Ketinggian dalam Aplikasi .NET
Artikel ini menangani cabaran untuk membezakan antara berjalan dengan keistimewaan pentadbir standard dan keistimewaan pentadbir yang dinaikkan dalam aplikasi .NET.
Kaedah dan Had Sedia Ada
Walaupun kaedah sedia ada boleh mengesahkan status pentadbir, kaedah tersebut gagal dalam membezakan antara akses pentadbir standard dan tinggi.
Pendekatan Dipertingkat Menggunakan UacHelper
Penyelesaian yang lebih mantap menggunakan kelas UacHelper
:
<code class="language-csharp">using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Security.Principal; using Microsoft.Win32; public static class UacHelper { ... // (Implementation details omitted for brevity) public static bool IsProcessElevated { get { if (IsUacEnabled) { // ... (Implementation details omitted for brevity) return elevationResult == TOKEN_ELEVATION_TYPE.TokenElevationTypeFull; } else { // ... (Implementation details omitted for brevity) return result; } } } }</code>
Kelas ini menentukan tahap ketinggian dengan cekap dengan menyemak UAC (Kawalan Akaun Pengguna) dan menggunakan fungsi GetTokenInformation
untuk pengenalan jenis ketinggian yang tepat. Apabila UAC tidak aktif, ia lalai kepada semakan berasaskan WindowsPrincipal
.
Pelaksanaan
Untuk mengesahkan status ketinggian aplikasi, hanya gunakan:
<code class="language-csharp">bool isElevated = UacHelper.IsProcessElevated;</code>
Kaedah yang diperhalusi ini menawarkan cara yang boleh dipercayai untuk memastikan tahap ketinggian yang tepat bagi aplikasi .NET anda, membezakan antara keistimewaan pentadbir standard dan pentadbir yang dinaikkan sepenuhnya.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Membezakan Antara Keistimewaan Pentadbir dan Pentadbir Ditingkatkan dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!