c# - كيف أجبر تطبيق.NET الخاص بي على العمل كمسؤول؟




windows-7 administrator (8)

بمجرد تثبيت البرنامج على جهاز العميل ، كيف أجبر البرنامج على العمل كمسؤول على Windows 7؟


أثناء العمل على Visual Studio 2008 ، انقر بزر الماوس الأيمن فوق Project -> Add New Item ثم Project -> Add New Item Application Manifest File .

في ملف البيان ، ستجد العلامة requestedExecutionLevel ExecutionLevel ، ويمكنك تعيين المستوى لثلاث قيم:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

أو

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

أو

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

لتعيين التطبيق للتشغيل كمسؤول ، يجب عليك اختيار التطبيق الأوسط.


إضافة عنصر requiredation_plended إلى البيان الخاص بك هو نصف المعركة فقط ؛ عليك أن تتذكر أنه يمكن إيقاف تشغيل UAC . إذا كان الأمر كذلك ، فعليك إجراء التحقق من طريقة المدرسة القديمة ووضع مربع حوار خطأ إذا كان المستخدم ليس مسؤولاً
(استدعاء IsInRole(WindowsBuiltInRole.Administrator) على مؤشر الترابط الخاص بك CurrentPrincipal ).


انقر بزر الماوس الأيمن على الملف التنفيذي ، وانتقل إلى الخصائص> التوافق وتحقق من المربع "تشغيل هذا البرنامج كمشرف".

إذا كنت تريد تشغيله كمشرف لجميع المستخدمين ، فافعل الشيء ذاته في "تغيير الإعداد لجميع المستخدمين".


حسب

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

ستحتاج إلى إضافة بيان تطبيق إذا لم يكن لديك بالفعل أو لا تعرف كيفية إضافة واحد. نظرًا لأن بعض المشروعات لا تضيف ملف بيان منفصل تلقائيًا ، انتقل أولاً إلى خصائص المشروع ، وانتقل إلى علامة التبويب " التطبيق" وتحقق للتأكد من أن مشروعك لا يستثني البيان الظاهر في أسفل الصنبور.

  • بعد ذلك ، انقر بزر الماوس الأيمن على المشروع
  • أضف أداة جديدة
  • أخيرًا ، ابحث عن ملف بيان التطبيق وانقر عليه

في Visual Studio 2010 ، انقر بزر الماوس الأيمن فوق اسم مشروعك. Hit "View Windows Settings" ، يقوم هذا بإنشاء وفتح ملف يسمى "app.manifest". ضمن هذا الملف استبدل "asInvoker" بـ "require المسؤول" كما هو موضح في الأقسام المعلق بها داخل الملف.


لقد طبّقت بعض التعليمات البرمجية لإجراء ذلك يدويًا:

using System.Security.Principal;
public bool IsUserAdministrator()
{
    bool isAdmin;
    try
    {
        WindowsIdentity user = WindowsIdentity.GetCurrent();
        WindowsPrincipal principal = new WindowsPrincipal(user);
        isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
    catch (UnauthorizedAccessException ex)
    {
        isAdmin = false;
    }
    catch (Exception ex)
    {
        isAdmin = false;
    }
    return isAdmin;
}


ستحتاج إلى تعديل البيان الذي يتم تضمينه في البرنامج. يعمل هذا على Visual Studio 2008 والإصدارات الأحدث: Project + Add New Item ، حدد "Application Manifest File". قم بتغيير عنصر <requestedExecutionLevel> إلى:

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

يحصل المستخدم على موجه UAC عند بدء تشغيل البرنامج. استخدم بحكمة؛ صبرهم يمكن أن يرتد بسرعة.







elevated-privileges