私のC#アプリケーションには問題があります。ファイルをサーバーに移動する必要がありますが、サーバーはユーザー名とパスワードで保護されています。道はこのようなものです:ファイルを別のコンピュータに移動
\\Server\Folder
、コードはこれです:
...
File.Move(args[0], "\\\\Server\\Folder");
...
私はそこにファイルを移動できますか?私を助けてください。
私のC#アプリケーションには問題があります。ファイルをサーバーに移動する必要がありますが、サーバーはユーザー名とパスワードで保護されています。道はこのようなものです:ファイルを別のコンピュータに移動
\\Server\Folder
、コードはこれです:
...
File.Move(args[0], "\\\\Server\\Folder");
...
私はそこにファイルを移動できますか?私を助けてください。
使用の偽装は:
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity idnt = new WindowsIdentity(username, password);
WindowsImpersonationContext context = idnt.Impersonate();
File.Move(args[0], "\\\\Server\\Folder");
context.Undo();
あなたはP \は、コピーする前に共有に接続するには、Windows API関数WNetAddConnection2
を呼び出すことができます。ここで
http://msdn.microsoft.com/en-us/library/aa385413(v=vs.85).aspx
はのPInvokeページです:http://pinvoke.net/default.aspx/mpr/WNetAddConnection2.html
[DLLIMPORT( "MPR.DLL"、エントリーポイント= "でWNetAddConnection2"、CallingConvention = CallingConvention.Winapi)] プライベート静的にexternのerrorCodeでWNetAddConnection2(NETRESOURCE lpNetResource、ref文字列lpPassword、ref 文字列lpUsername、System.UInt32 dwFlags);
しかし、Linuxサーバーの場合は、それは働くだろうか? – user35443
上記がうまくいかない場合は、[こちら](http://www.codeproject.com/KB/IP/ConnectUNCPathCredentials.aspx)を試してください。 – CodeCaster
Windowsファイル共有が有効になっているLinuxサーバー(Samba)の場合は、これが動作するはずです。そうでない場合は、FTPソリューションのようなものを試してみてください。 – crlanglois