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'필드를 수정하기위한 사용자 지정 작업을 만들어야 할 가능성이 있습니다. 관리자 작업으로 간주되기 때문에 일반 사용자는이를 간단하게 변경할 수 없기 때문입니다. 그러나 우리는 이것을 검증하고 대답을 게시 할 것입니다. –