Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Cekap Semak Kebenaran Tulis dalam .NET Tanpa Pengendalian Pengecualian Generik?

Bagaimana untuk Cekap Semak Kebenaran Tulis dalam .NET Tanpa Pengendalian Pengecualian Generik?

Patricia Arquette
Lepaskan: 2025-01-16 18:39:11
asal
891 orang telah melayarinya

How to Efficiently Check for Write Permissions in .NET Without Generic Exception Handling?

Kaedah Unggul untuk Mengesahkan Kebenaran Tulis .NET: Melangkaui Pengendalian Pengecualian

Dalam pembangunan .NET, amalan biasa untuk mengesahkan akses tulis kepada direktori melibatkan percubaan operasi menulis fail dan mengendalikan sebarang pengecualian yang terhasil. Walaupun nampak mudah, kaedah ini tidak cekap dan bukan amalan terbaik.

Alternatif yang lebih mantap dan tepat ialah memanfaatkan kaedah Directory.GetAccessControl. Ini membenarkan pemeriksaan terus senarai kawalan akses (ACL) direktori, memberikan jawapan muktamad berkenaan kebenaran menulis.

Pertimbangkan pendekatan yang dipertingkatkan ini:

<code class="language-csharp">public static bool HasWritePermissionOnDir(string path)
{
    bool writeAllowed = false;
    bool writeDenied = false;
    var accessControlList = Directory.GetAccessControl(path);
    if (accessControlList == null) return false;
    var accessRules = accessControlList.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));
    if (accessRules == null) return false;

    foreach (FileSystemAccessRule rule in accessRules)
    {
        if ((FileSystemRights.Write & rule.FileSystemRights) != FileSystemRights.Write) continue;

        if (rule.AccessControlType == AccessControlType.Allow) writeAllowed = true;
        else if (rule.AccessControlType == AccessControlType.Deny) writeDenied = true;
    }

    return writeAllowed && !writeDenied;
}</code>
Salin selepas log masuk

Fungsi ini menyemak dengan teliti untuk kedua-dua peraturan "Benarkan" dan "Nafikan", memberikan penilaian menyeluruh tentang kebenaran menulis. Memahami konsep "Bendera" adalah kunci untuk mentafsir logik kod.

Dengan menggunakan Directory.GetAccessControl, pembangun boleh melaksanakan semakan kebenaran menulis yang tepat dan cekap dalam aplikasi .NET mereka, menggantikan kaedah berasaskan pengecualian yang terdedah kepada ralat.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Semak Kebenaran Tulis dalam .NET Tanpa Pengendalian Pengecualian Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan