私はModifiedByフィールドを書き直すことは、エッジケース(または小さなハック)だと思いますが、魔法なしで可能です(コードを参照)。最も簡単な方法は、完全にSenseNet.Clientによって管理されているPATCH、続いPOSTです(コードは、ローカルのデモサイトを使用しています):
static void Main(string[] args)
{
ClientContext.Initialize(new[]
{new ServerContext {Url = "http://localhost", Username = "admin", Password = "admin"}});
var localFilePath = @"D:\Projects\ConsoleApplication70\TestFileFromConsole1.txt";
var parentPath = "/Root/Sites/Default_Site/workspaces/Document/londondocumentworkspace/Document_Library";
var fileName = "TestFileFromConsole1.txt";
var path = parentPath + "/" + fileName;
var userPath = "/Root/IMS/BuiltIn/Demo/ProjectManagers/alba";
using (var stream = new FileStream(localFilePath, FileMode.Open))
Content.UploadAsync(parentPath, fileName, stream).Wait();
Console.WriteLine("Uploaded");
Modify(path, userPath).Wait();
Console.WriteLine("Modified");
Console.Write("Press <enter> to exit...");
Console.ReadLine();
}
// Rewrites the ModifiedBy field
private static async Task Modify(string path, string userPath)
{
var content = await Content.LoadAsync(path);
content["ModifiedBy"] = userPath;
await content.SaveAsync();
}
共通API呼び出しがサーバー側の一例であり、彼らはコンパイルされませんクライアント上でアップロードを確認します。 –
'ModifiedBy'フィールドを変更するためのカスタムアクションを作成する必要がある可能性があります。これは管理操作と見なされるため、通常のユーザーはそれを簡単に変更できません。しかし、私たちはこれを検証し、答えを投稿します。 –