Win フォームを使用して PC からリモート サーバーにファイルをアップロードしようとすると、次のエラーが表示されます。私のコンピューターでは、ドメインユーザーを使用しており、リモートサーバーのローカルユーザーのファイルをアップロードしています
ユーザーを偽装する必要があることを発見しましたが、NetworkCredential を偽装する方法がまだわかりませんでした。
この私のコード:
if (tbUsername.Text != string.Empty && tbPassword.Text != string.Empty && userSelectedFilePath != string.Empty)
{
try
{
using (WindowsIdentity.GetCurrent().Impersonate())
{
WebClient client = new WebClient();
NetworkCredential nc = new NetworkCredential("\\\\" + targetServer.Host + "\\" + tbUsername.ToString(), tbPassword.ToString());
client.Credentials = nc;
client.UploadFile(targetServer, filepath);
MessageBox.Show("the file was successfully uploaded", "information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("One of the fields is empty", "Fields Empty", MessageBoxButtons.OK, MessageBoxIcon.Error);
}