ログイン資格情報を使用して他のサーバーにアクセスしています。私の問題は、最初にコードを実行すると、エラーが次のように表示されることです
Logon failure: unknown user name or bad password
しかし、コマンドプロンプトからサーバーに一度接続した後にコードを実行しようとすると。その後、アプリケーションは正常に動作し、エラーは発生しません。そのため、アプリケーションをエラーなしで実行するには、コマンド プロンプトからサーバーに 1 回接続する必要があります。
これが私のコードです:
static void main()
{
string sourceDir = "//server.domain.mhc//drive";
string DestinationDir = "D:\\Test";
DirectoryCopy(sourceDir, DestinationDir, true);
}
[DllImport("advapi32.DLL", SetLastError = true)]
public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
{
clsEmail objEmail = new clsEmail();
try
{
IntPtr admin_token = default(IntPtr);
if(LogonUser("myusername","domain","pwd",9,0,ref admin_token) != 0)
{
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
DirectoryInfo[] dirs = dir.GetDirectories();
}