2010-04-30 17 views
7

सी # 2008, में फ़ाइल को प्रतिलिपि बनाने की कोशिश कर रहा है (उदाहरण के लिए \ newserver \ destinationFolder), जो किसी अन्य डोमेन में हो या उपयोग कर रहा है वर्तमान उपयोगकर्ता की तुलना में एक अलग उपयोगकर्ता नाम/पासवर्ड। File.Copy (...) करने से पहले मैं इन नए नेटवर्क प्रमाण-पत्रों को कैसे निर्दिष्ट कर सकता हूं?सी # अन्य डोमेन/उपयोगकर्ता नाम/पासवर्ड

धन्यवाद!

+1

http://stackoverflow.com/questions/158492/c-network-login –

उत्तर

2

अच्छा सवाल है लेकिन मुझे नहीं लगता कि यह संभव है। मेरा मानना ​​है कि इस प्रकार की फाइल कॉपी एक डोमेन से दूसरी डोमेन (जहां ट्रस्ट सेट अप नहीं है) को सुरक्षा छेद माना जाएगा।

कुछ विकल्प:

  1. डोमेन के बीच एक ट्रस्ट को सेट करें और वर्तमान उपयोगकर्ता
  2. आप एक शैल कमांड निष्पादित की कोशिश कर सकते हैं और यदि आप आदेश पंक्ति पैरामीटर के माध्यम से यह काम कर सकते हैं देखने के लिए अधिकार दे। मैं "नेट यूज" कमांड सोच रहा था।
1

LogonUser को देखो। यहाँ इसके लिए PInvoke पेज है:

http://www.pinvoke.net/default.aspx/advapi32.logonuser

+0

नाइस के संभावित डुप्लिकेट, मुझे लगता है कि, अच्छा लिंक की तरह। –

0

MapDrive => स्थानीय उपयोगकर्ता के रूप में कॉपी फ़ाइलें => UnmapDrive। एक नज़र here लें:

protected int MapDrive(){ 
     NETRESOURCEA[] resources = new NETRESOURCEA[1]; 
     resources[0] = new NETRESOURCEA(); 
     resources[0].dwType = 1; 
     int dwFlags = 1; 
     resources[0].lpLocalName = _DriveLetter; 
     resources[0].lpRemoteName = _Path; 
     resources[0].lpProvider = null; 
     int ret = WNetAddConnection2A(resources, null, null, dwFlags); 
     return ret; 
    } 

    protected int UnmapDrive() 
    { 
     int ret = WNetCancelConnection2A(_DriveLetter, 0, true); 
     return ret; 
    } 
संबंधित मुद्दे