1

C# の FileWebRequest を使用して、ファイル共有に新しいディレクトリを作成し、そのディレクトリに新しいファイルをアップロードしようとしています。これが可能かどうか誰にもわかりますか?

新しいファイルがファイル共有に直接ある場合は正常にアップロードできますが、新しいディレクトリ内にアップロードしようとすると例外が発生します。

たとえば、newfile.txtを次の場所にアップロードすると問題なく動作します: \\servername\sharename\newfile.txt

しかし、この場所にアップロードしようとすると: \\servername\sharename\ newfolder \newfile.txt'.

...その後、例外が発生します:パス \\servername\sharename\newfolder\newfile.txt の一部が見つかりませんでした。

バックグラウンド:

ファイルを生成してファイル共有にコピーする必要がある Web サービスがあります。セキュリティ上の理由から、Web サービスは、生成要求を開始する特定のユーザーを偽装し、これらの (委任された) 偽装された ID を使用してファイルを共有にコピーする必要があります。

どうやら偽装されたユーザー ID を Web サービスからファイル システムに委任しても、そのままでは機能しないようです。代わりに、FileWebRequest を使用して、共有の URI を使用してファイルをアップロードしようとしているので、AuthenticationManager を使用できます。 .CustomTargetNameDictionary を使用して、委任を実現できるようにファイル サーバーの SPN を登録します。

編集:私は現在 FileWebRequest を使用してファイルをアップロードしています:

var uploadRequest = (FileWebRequest)WebRequest.Create(@"file://servername/sharename/newfolder/newfile.txt");
//...snip
using (var outputStream = uploadRequest.GetRequestStream())
{
    outputStream.Write(buffer, 0, buffer.Length);
}
4

0 に答える 0