0

ここには奇妙なシナリオがあります。私のアプリはファイルサーバーに接続して、UNC を使用してディレクトリからファイルを一覧表示します。過去数年間、問題なく動作しています。最近、ネットワーク管理者がサーバーを再起動した結果、LogonUser : Unknown user or bad password エラーが発生し始めました。ネットワーク管理者によると、すべてがドメイン ユーザー アカウントに対して正しく設定されています。ユーザー名とパスワードはすべて正しいです。以下のコードで変更する必要があるものはありますか?

const int LOGON32_LOGON_INTERACTIVE = 2;
const int LOGON32_LOGON_NETWORK = 3;
const int LOGON32_LOGON_BATCH = 4;
const int LOGON32_LOGON_SERVICE = 5;
const int LOGON32_LOGON_UNLOCK = 7;
const int LOGON32_LOGON_NETWORK_CLEARTEXT = 8;
const int LOGON32_LOGON_NEW_CREDENTIALS = 9;
const int LOGON32_PROVIDER_DEFAULT = 0;

[DllImport("advapi32.dll", SetLastError = true)]
public static extern int LogonUser(
    string lpszUsername,
    string lpszDomain,
    string lpszPassword,
    int dwLogonType,
    int dwLogonProvider,
    out IntPtr phToken
    );
[DllImport("advapi32.dll", SetLastError = true)]
public static extern int ImpersonateLoggedOnUser(
    IntPtr hToken
);

[DllImport("advapi32.dll", SetLastError = true)]
static extern int RevertToSelf();

[DllImport("kernel32.dll", SetLastError = true)]
static extern int CloseHandle(IntPtr hObject);
int TResult = LogonUser(ConfigurationManager.AppSettings["ServerUserName"].ToString(), @"\\server\folder", ConfigurationManager.AppSettings["ServerPassword"].ToString(), LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, out lnToken);

他に何をネットワーク管理者に確認する必要があるかアドバイスしてください。前もって感謝します。

4

1 に答える 1

0

実行しているコードに本質的に問題があるとは思いません。したがって、なぜこれが突然機能しなくなるのかはわかりません。ただし、少しのリファクタリングを受け入れる場合は、同様の問題に遭遇した他の人がいるようです. 以下の回答のいずれかで、必要な洞察が得られるはずです。

dns または netbios が利用できない場合に、ネットワーク経由でファイル コピーのユーザーを偽装する方法

C# で Windows のパスワードで保護されたネットワーク ドライブにアクセスしますか?

于 2013-01-28T17:00:31.730 に答える