قواعد لتطبيقات WinForms متعددة المستخدمين على نظام التشغيل Vista

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

سؤال

لدينا أداة تثبيت MSI لتطبيق .Net WinForms لنظام التشغيل Windows XP الذي يتم تثبيته وتشغيله كمسؤول فقط.يتعين على المستخدمين تسجيل الدخول إلى التطبيق عند تشغيله.يريد العملاء تثبيته وتشغيله ضمن حساب مستخدم ضمن نظام التشغيل Vista، واستخدام حساب Windows الخاص بهم.

نظرة أولية على الكود تظهر الكثير من المشاكل؛يكتب المثبت إلى السجل ويقوم بتثبيت التطبيق في C:\Program Files.يقوم التطبيق بتخزين تفضيلات المستخدم في السجل، ويكتب البيانات إلى C:\Documents and Settings\All Users\، ويقوم بإنشاء ملفات مؤقتة في C:.

أعتقد أن أول شيء يجب فعله هو تخزين ملفات البيانات في System.Environment.CommonApplicationData وتفضيلات المستخدم في System.Environment.LocalApplicationData.هل يمكن لحساب المستخدم تثبيت تطبيق على System.Environment.ProgramFiles؟

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

هل يوجد كتاب أو موقع ويب يقدم تفاصيل مفصلة عما هو مطلوب لإنشاء تطبيق WinForms يتوافق مع القواعد الخاصة بالعديد من المستخدمين على نظام التشغيل Vista؟

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

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

هل يوجد كتاب أو موقع يصف جميع القواعد التي يجب أن تتبعها تطبيقات مستخدم نظام التشغيل Vista؟

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

المحلول 3

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

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

لقد وجدت أيضًا مرجعًا رائعًا لإنشاء تطبيقات متعددة المستخدمين على نظام التشغيل Windows، وهو المتطلبات الفنية لشعار برنامج عميل Microsoft Windows 7 وثيقة.

نصائح أخرى

"يجب أن يكون التطبيق قابلًا للتثبيت وغير قابل للاستثمار من قبل أي مستخدم" "يشارك جميع المستخدمين نفس ملفات البيانات"

ستواجه مشكلة في الاضطرار إلى تلبية هذين الشرطين.تم تصميم ميزات الأمان الجديدة في نظام التشغيل Vista لمنع المستخدمين من الدوس على بعضهم البعض (والنظام).

الطريقة الوحيدة التي يمكنني التفكير فيها لإنجاز هذا العمل هي طريقة مشابهة لكيفية تعاملنا مع مطلب مثل ذلك في بيئة Windows 2000.يمكنك إنشاء مكونين - جزء المستخدم من التطبيق، ومكون النظام الذي يدير المعلومات التي تتم مشاركتها بين المستخدمين.يقوم المسؤول بتثبيت المكون "المشترك" (الذي يتضمن خدمة Windows لتشغيله)، ويقوم كل مستخدم بتثبيت المكون "المستخدم".

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

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

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

يمكن تحديد نطاق أدوات التثبيت القياسية (المستندة إلى MSI) لتكون إما لكل مستخدم أو لكل جهاز:

  • تقوم عمليات التثبيت لكل مستخدم بوضع ملفات البرامج المثبتة في مكان ما ضمن الدليل الرئيسي للمستخدم.يتم تثبيت التطبيق لهذا المستخدم فقط.لا يرى المستخدمون الآخرون البرنامج في قائمة البداية ولا في إضافة/إزالة البرامج.إذا كانوا يريدون البرنامج، فيجب عليهم تثبيته بأنفسهم في منطقة كل مستخدم خاصة بهم.لذلك قد تكون هناك نسخ متعددة من البرنامج مثبتة، وكل واحدة منها معزولة عن الأخرى.يمكن إجراء هذا النوع من التثبيت بواسطة مستخدمين عاديين (غير إداريين)، ولهذا السبب لا يمكنهم الكتابة إلى المناطق المشتركة مثل "ملفات البرنامج" أو "كافة المستخدمين".
  • يمكن لعمليات التثبيت لكل جهاز تعديل المناطق المشتركة في نظام الملفات (على سبيل المثال، "ملفات البرنامج" أو "كافة المستخدمين").يرى كل مستخدم نفس النسخة من البرنامج في قائمة البداية وإضافة/إزالة البرامج.يمكن للمستخدمين الإداريين فقط إجراء هذا النوع من التثبيت.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top