(C #) كيف تحقق ما إذا كان المسار هو مسار المحمي في Windows يتطلب الارتفاع إلى تعديل؟

StackOverflow https://stackoverflow.com/questions/837009

  •  10-07-2019
  •  | 
  •  

سؤال

لدينا مجلد حيث التطبيق لدينا من المحتمل أن تصبح القراءة والكتابة وخلق / حذف الملفات على، وعلى الرغم من أننا يمكن الافتراضي إلى مكان آمن، ونحن تسمح للمستخدم لاختيار دليل مختلف. كيف يمكننا معرفة ما اذا كان الدليل الذي اختاروه هو "آمنة"؟

ونود أن لا يتطلب ارتفاع مشرف في وقت التشغيل، وسيتم استخدام هذا المسار لإطلاق اللاحقة من التطبيق، لذلك لا يكفي أن نتحقق ما إذا كانت عمليتنا قادرة حاليا على الكتابة على هذا الموقع لأنه يمكن يمكن أن يتم تشغيل التطبيق مع امتيازات المسؤول أول مرة (في الواقع هو الحال عندما شنت من قبل المثبت لأن المثبت يعمل مرتفع) وإذا كانت تحديد موقع المحمية، في المرة القادمة التي تحاول تشغيل التطبيق، لن يكون لديها الوصول إلى الدليل. يحتمل أن يتم تخزين البيانات المستمر من GB في هذا الموقع يسأل حتى عن موقع جديد ونقل الملفات ليس حلا مثاليا.

هل كانت مفيدة؟

المحلول

لا يمكن إلا أن أي مجلد لديه أية أذونات، لكنها يمكن أن تتغير في أي وقت، <م> بما في ذلك بين عند تحقق من ملف وعند استخدامه . ذلك حقا، والشيء الوحيد الذي يمكنك القيام به هو مجرد استخدام ملف والتعامل مع استثناء عندما يفشل.

نصائح أخرى

وبما أن أي مجلد يمكن أن يكون تعيين أذونات ولكن المسؤول يراه مناسبا، والطريقة الحقيقية الوحيدة لمعرفة ما هو لمعرفة ما المستخدم سيتم تشغيل و(المسجلة حاليا في المستخدم؟) وبعد ذلك الاختيار الوصول إلى معرفة ما إذا كان ذلك المستخدم لديه حق الوصول المناسب إلى هذا الدليل.

والنصيحة أخرى حول أذونات تغيير في أي وقت صالحة، ولكن التدقيق في تثبيت الوقت لا يزال أفضل من عدم التحقق على الإطلاق.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top