نحوه تنظیم سطوح دسترسی در فایل app.manifest
سطوح دسترسی به منابع سیستم از طریق تگهای خاص در فایل app.manifest تنظیم میشود. دو نوع سطح دسترسی اصلی وجود دارد که معمولاً در فایلهای manifest مشخص می....


لیست مطالب
فایل app.manifest
یکی از اجزای حیاتی برنامههای کاربردی (Applications) است که در سیستمعاملهای مدرن مانند ویندوز استفاده میشود. این فایل وظیفه تعریف رفتارهای خاص برنامه را دارد و به سیستمعامل میگوید که برنامه چه دسترسیها و مجوزهایی برای اجرا نیاز دارد. تنظیم سطوح دسترسی (Access Levels) در این فایل، از اهمیت بالایی برخوردار است زیرا میتواند بهشدت روی امنیت، کارایی و سازگاری برنامه تأثیر بگذارد.
در این مقاله، به بررسی جزئیات و تفاوتهای تنظیم سطوح دسترسی در فایل app.manifest
میپردازیم و به این سؤال پاسخ میدهیم که چگونه میتوان با تنظیم مناسب این فایل، برنامهای کارآمد و ایمنتر ایجاد کرد.
نقش app.manifest در برنامههای ویندوز
فایل app.manifest
یک فایل XML است که درون آن تنظیمات کلیدی برنامه قرار دارد. این فایل نه تنها سطح دسترسیهای برنامه را تعیین میکند بلکه ویژگیهای مختلفی از جمله تمها، DPI، تنظیمات اجرایی، و حتی اطلاعات مربوط به سازگاری با نسخههای مختلف ویندوز را مشخص میکند.
بهطور خاص، یکی از مهمترین نقشهای این فایل، تعیین سطح دسترسی به منابع سیستم است. این شامل مواردی مانند دسترسی به فایلها، رجیستری ویندوز، یا تغییرات سیستمی میشود که ممکن است برای اجرای برنامه ضروری باشد.
در مقالهی "فایل app.manifest چیست و چه کاربردی دارد؟" به توضیح فایل پیکربندی app.manifest
پرداخته شده است که در نرمافزارهای ویندوزی برای تنظیمات خاصی از جمله سطح دسترسی، سازگاری با نسخههای ویندوز، پشتیبانی از DPI بالا، و استفاده از Visual Styles کاربرد دارد. همچنین به نحوه مدیریت وابستگیهای برنامه به Assemblyها اشاره شده است. برای مطالعه کامل این مقاله میتوانید اینجا کلیک کنید.
سطوح دسترسی در فایل app.manifest
سطوح دسترسی به منابع سیستم از طریق تگهای خاص در فایل app.manifest
تنظیم میشود. دو نوع سطح دسترسی اصلی وجود دارد که معمولاً در فایلهای manifest مشخص میشوند:
سطح دسترسی "AsInvoker"
این سطح دسترسی به این معنی است که برنامه با همان سطح دسترسی که کاربر فعلی سیستم دارد اجرا میشود. به عبارت دیگر، برنامه به منابعی دسترسی دارد که کاربر نیز به آنها دسترسی دارد و از ارتقای سطح دسترسی استفاده نمیکند.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
این سطح مناسب برنامههایی است که نیازی به دسترسی به منابع حساس سیستم ندارند و باید بدون درخواست مجوزهای اضافی اجرا شوند. برنامههایی مانند مرورگرهای وب یا ویرایشگرهای متن معمولاً از این سطح استفاده میکنند.
سطح دسترسی "RequireAdministrator"
در این حالت، برنامه برای اجرا به دسترسی مدیریتی نیاز دارد. یعنی برنامه تنها در صورتی که با سطح دسترسی ادمین اجرا شود، قادر به عملکرد کامل است. این حالت معمولاً برای برنامههایی مانند ابزارهای سیستمی یا نرمافزارهای نصب استفاده میشود که نیاز به تغییرات اساسی در سیستم دارند.
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
این سطح دسترسی برای برنامههایی که نیاز به دسترسی به منابع حساس یا نیاز به ایجاد تغییرات در سیستمعامل دارند، مانند نصبکنندههای نرمافزار، مناسب است.
سطح دسترسی "HighestAvailable"
این سطح دسترسی به این معنی است که برنامه با بالاترین سطح دسترسی ممکن برای کاربر فعلی اجرا میشود. اگر کاربر ادمین باشد، برنامه با سطح دسترسی مدیریتی اجرا میشود و در غیر این صورت با سطح دسترسی کاربر عادی اجرا خواهد شد.
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
این سطح بیشتر در برنامههایی استفاده میشود که در صورت دسترسی به مجوزهای مدیریتی نیاز به برخی قابلیتهای اضافه دارند اما میتوانند با دسترسی عادی نیز کار کنند.
مقایسه سطوح دسترسی
تفاوتهای کلیدی بین سطوح دسترسی در فایل app.manifest
عبارتند از:
-
کنترل بر مجوزهای سیستم: سطح دسترسی "AsInvoker" به کاربر اجازه میدهد که برنامه را بدون درخواست دسترسی مدیریتی اجرا کند، در حالی که سطح دسترسی "RequireAdministrator" نیازمند تائیدیه مدیریتی برای دسترسی به منابع حساس است. "HighestAvailable" بین این دو قرار میگیرد و تلاش میکند با بالاترین سطح ممکن اجرا شود.
-
امنیت: برنامههایی که با سطح دسترسی "RequireAdministrator" اجرا میشوند، میتوانند تغییرات مهمی در سیستم ایجاد کنند که ممکن است منجر به آسیبپذیریهای امنیتی شوند. از طرفی، سطح دسترسی "AsInvoker" کمترین خطر را برای امنیت سیستم دارد، زیرا تنها به منابعی دسترسی دارد که کاربر نیز به آنها دسترسی دارد.
-
سهولت استفاده: از دید کاربر نهایی، برنامههایی که با سطح "AsInvoker" اجرا میشوند، به دلیل عدم نیاز به تاییدیههای اضافی مانند User Account Control (UAC) راحتتر اجرا میشوند. از طرف دیگر، برنامههایی که با "RequireAdministrator" اجرا میشوند، ممکن است کاربران را به دلیل درخواستهای مکرر برای تائید دسترسی، ناراضی کنند.
چگونه سطح دسترسی مناسب را انتخاب کنیم؟
انتخاب سطح دسترسی مناسب به نیازهای برنامه و نوع کاربری که از آن استفاده میکند بستگی دارد. بهطور کلی، برای برنامههایی که نیازی به دسترسی به منابع حساس ندارند، توصیه میشود از سطح "AsInvoker" استفاده شود. این کار باعث میشود که برنامه به طور پیشفرض کمترین دسترسی ممکن را داشته باشد و در عین حال نیاز به تعاملات اضافی با UAC را از بین ببرد.
برنامههایی که نیاز به تغییرات سیستمی دارند، مانند نصبکنندهها، ابزارهای مدیریت شبکه یا نرمافزارهای امنیتی، باید از سطح "RequireAdministrator" استفاده کنند. با این حال، توسعهدهندگان باید اطمینان حاصل کنند که تنها در صورت لزوم از این سطح استفاده میشود تا از دسترسیهای غیرضروری جلوگیری کنند.
نکات ایمنی و بهترین روشها
- حداقل دسترسی: همواره سعی کنید برنامهها را با کمترین سطح دسترسی ممکن طراحی و اجرا کنید. این کار از ایجاد آسیبپذیریهای امنیتی جلوگیری میکند.
- ارتباط با UAC: User Account Control یا UAC، مکانیزمی است که در ویندوز برای مدیریت دسترسیهای برنامهها به منابع سیستم استفاده میشود. برنامههایی که به سطح "RequireAdministrator" نیاز دارند، باید به درستی با این مکانیزم سازگار شوند تا تجربه کاربری خوبی ارائه دهند.
- سازگاری با نسخههای مختلف ویندوز: هنگام تنظیم فایل
app.manifest
، مطمئن شوید که تنظیمات شما با نسخههای مختلف ویندوز سازگاری دارد. برخی از نسخههای قدیمیتر ویندوز ممکن است نیاز به پیکربندیهای خاصی داشته باشند.
نحوه افزودن app.manifest به پروژه در Visual Studio
با توجه به مسیر مسخص شده در تصویر زیر گزینه New Item را انتخاب کنید
مطابق تصویر زیر در پنجره باز شده در بخش جستجو عبارت mani را تایپ کنید تا آیتمی با نام Application Manifest File (Windows Only) ظاهر شود و روی آن کلیک کنید و گزینه Add را بزنید تا به پروژه شما اضافه شود.
مطابق تصویر زیر فایل به پروژه شما اضافه شده و در تگ requestedExecutionLevel که با فلش قرمز مشخص شده است می توانید دسترسی مورد نظر خود را طبق همین مقاله تنظیم کنید.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)