2016-07-07 10 views
0

でアクセスする必要があります。別のドメインの次のディレクトリにアクセスして、C#プログラムにアクセスする必要があります。私はどのように進めるべきですか?私は偽装方法を使用するべきですか?別のドメインのリモートディレクトリにc#

string[] files = Directory.GetFiles(@"\\testweb\folder\test", "*.txt"); 

助けてください。

答えて

0

これを実行する前に、適切にユーザーを使用してドメインへの接続を作成する必要があります(これが解決したい場合)。次に、あなたのGetFilesメソッドが正常に動作します

public class MprWrapper 
    { 
     [DllImport("Mpr.dll")] 
     private static extern int WNetUseConnection(
      IntPtr hwndOwner, 
      _NETRESOURCE lpNetResource, 
      string lpPassword, 
      string lpUserID, 
      int dwFlags, 
      string lpAccessName, 
      string lpBufferSize, 
      string lpResult 
      ); 

     struct _NETRESOURCE 
     { 
      public int dwScope; 
      public int dwType; 
      public int dwDisplayType; 
      public int dwUsage; 
      public string lpLocalName; 
      public string lpRemoteName; 
      public string lpComment; 
      public string lpProvider; 
     } 


     public static void WNetUseConnection(string remoteName, string user, string pass) 
     { 
      _NETRESOURCE myStruct = new _NETRESOURCE 
      { 
       dwType = 1, //it's a disk (0 is any, 2 is printer) 
       lpRemoteName = remoteName 
      }; 

      int error = WNetUseConnection(new IntPtr(0), myStruct, pass, user, 0, null, null, null); 
      if (error != 0) 
      { 
       throw new Exception("That didn't work either"); 
      } 
      // if we reach here then everything worked!!! 
     } 
    } 

あなたは

MprWrapper.WNetUseConnection(@"\\DomainAddressHere", @"Domain\User", "Password1"); 

との接続:あなたはこのクラスを使用してそれを行うことができます。これは潜在的にオープンな接続を残しますが(複数のものを作成するわけではありません)、とにかくそれを閉じるためのコードを作成したり、すべてを正しく処理するなどしたいかもしれません。これは単なる出発点に過ぎません。

+0

この接続はどこに作成しますか? – velvt

+0

@velvtメソッドを呼び出す前に – Gaspa79

関連する問題