الوصول إلى مشاركة الشبكة عبر Process.start (path) باستخدام بيانات اعتماد الشبكة

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

سؤال

انا استخدم هذه فئة الانتحال من أجل انتحال شخصية حساب المجال للوصول إلى حصة الشبكة مثل ذلك:

using(new Impersonartor(username, domain, password))
{
//Code Here
}

يعمل نسخ الملف من مشاركة الشبكة على ما يرام:

using(new Impersonartor(username, domain, password))
{
 CopyAll(uncPath, localPath)
}

ومع ذلك ، فإن استخدام Process.start لعرض مشاركة UNC في Explorer يلقي "فشل تسجيل الدخول: اسم مستخدم غير معروف أو كلمة مرور سيئة":

using(new Impersonartor(username, domain, password))
{
 Process.Start(uncPath)
}

شتبه في أن فئة الانتحار على خطأ ، لقد حاولت يدويًا توفير بيانات الاعتماد لعمليات التشغيل مثل ذلك:

                        System.Diagnostics.ProcessStartInfo viewDir = new System.Diagnostics.ProcessStartInfo(uncPath);
                        viewDir.UseShellExecute = false;
                        viewDir.Domain = netCred.Domain;
                        viewDir.UserName = netCred.UserName;
                        viewDir.Password = ConvertToSecureString(netCred.Password);
                        System.Diagnostics.Process.Start(viewDir);

لا يزال لا فرح. لاحظ أنني متأكد من أن netcred (networkcredential) صحيح حيث اعتدت على إجراء اتصالات سابقة للموارد المصادقة.

لذا ، كيف يمكنني عرض مسار UNC في Explorer باستخدام بيانات اعتماد الشبكة؟

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

المحلول

واجهت نفس المشكلة اليوم وهنا ما نجح بالنسبة لي:

private void OpenNetworkPath(string uncPath)
{
   System.Diagnostics.Process.Start("explorer.exe", uncPath);
}

نصائح أخرى

بدلا من تمرير uncath إلى Process.Start, ، حاول بدء "Explorer" في Process.Start وتمرير UNCPATH ProcessStartInfoArguments منشأه.

System.Diagnostics.ProcessStartInfo viewDir = new System.Diagnostics.ProcessStartInfo("explorer.exe");
viewDir.UseShellExecute = false;
viewDir.Domain = netCred.Domain;
viewDir.UserName = netCred.UserName;
viewDir.Password = ConvertToSecureString(netCred.Password);
viewDir.Arguments = uncPath;
System.Diagnostics.Process.Start(viewDir);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top