Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Membezakan Antara Keistimewaan Pentadbir dan Pentadbir Ditingkatkan dalam .NET?

Bagaimana Saya Boleh Membezakan Antara Keistimewaan Pentadbir dan Pentadbir Ditingkatkan dalam .NET?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-13 11:28:42242semak imbas

How Can I Distinguish Between Administrator and Elevated Administrator Privileges in .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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn