كيف أنقل الملفات من جهاز إلى آخر باستخدام ASP.NET؟

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

سؤال

لنفترض أن لدي موقعًا حيث بمجرد قيام المستخدم بتحديد بعض الخيارات، (يجب) أن يحدث ما يلي:

  • الاستيلاء على الملفات (في الدليل) من الجهاز المحلي - يعمل بشكل جيد حتى الآن
  • ينقلهم إلى خادم بعيد - وهذا هو المكان الذي أحتاج فيه إلى المساعدة

تفاصيل:

  • سيتم العثور على الخادم البعيد عبر مسار UNC (\servername\xyz)
  • لدي حق الوصول إلى اسم المستخدم/كلمة المرور للوصول إلى مسار UNC هذا، ولكن نظرًا لأننا في مجال مختلف ولا أتحكم في قرارات تكنولوجيا المعلومات، فلا يمكنني الحصول على مستخدم واحد لديه أذونات في كلا المجالين.

كيف أقوم بإعداد موقعي للقيام بذلك؟إذا قمت بانتحال هويتي، فقد أفقد أذونات الاستيلاء على الملفات الموجودة على الجهاز المحلي...

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

أوه، هذا هو .NET 1.1 أيضًا.


وهذا اقتراح بشأن سؤال ذي صلة:تحتاج إلى انتحال شخصية المستخدم للوصول إلى مورد الشبكة، حساب Asp.Net

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

المحلول

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

على سبيل المثال:

  • في المجال XYZ، يكون لديك مستخدم "filesynch" بكلمة مرور "pass"
  • في المجال PDQ، يكون لديك مستخدم "filesynch" بكلمة مرور "pass"
  • تأكد من أن المستخدم PDQ\filesynch لديه حق الوصول للمشاركة على الجهاز في مجال PDQ
  • قم بتشغيل التطبيق على جهاز في مجال XYZ كمستخدم XYZ\filesynch
  • نسخ الملفات عبر الشبكة

نصائح أخرى

يمكن القيام بذلك إما باستخدام unc أو ftp.بالنسبة للإصدار السابق (unc) يمكنك استخدام File.Copy(source, target) - بالنسبة للأخير، يمكنك استخدام عدة تقنيات.إذا قمت بتخزين ما يريده المستخدم من الجهاز على الموقع البعيد، فيمكنك استخدام عميل الويب (System.Net.WebClient) لتنزيل الملفات عبر أي عنوان URL يمكن الوصول إليه (على سبيل المثال:تشغيل استعراض الملفات في IIS).

إذا كان بإمكانك استخدام .NET 2.0، فلديك خيارات أفضل مع كائنات أكثر موثوقية (على سبيل المثال:FtpRequest) - هل هناك سبب لعدم قدرتك على استخدام .NET 2.0؟

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