CobaltCore组装

时间:2014-05-26 14:14:15

标签: c# sharepoint fsshttp ms-wopi

我尝试在C#中实现一个可以使用CobaltCore程序集处理Cobalt协议的自定义Wopi主机。

但我没有找到CobaltCore.dll的任何文档 对象浏览器有点帮助..

如果有人遇到类似问题,请提供一些细节。 我应该如何使用Cobalt来破译消息?

3 个答案:

答案 0 :(得分:1)

对于文字编辑实施,请点击此处:

Can I just use Office Web Apps Server

// fsshttpb payload, basically decode from base64 encoded

byte[] test1 = System.Convert.FromBase64String("DAALAJzPKfM5lAabBgIAAO4CAABaBBYADW1zd29yZAd3YWN6AggA1RyhD3cBFgIGAAMFABoEIAAL3Do4buY4RJXm4575cgEiigICAAALAawCAFUDAQ==");

// create an atom object from the fsshttp input
AtomFromByteArray atomRequest = new AtomFromByteArray(test1);

RequestBatch requestBatch = new RequestBatch();
requestBatch.DeserializeInputFromProtocol(atomRequest);

// now you can inspect requestBatch to view the decoded objects

编辑:

以下是使用CobaltCore的示例实现。几乎是我在一个项目中对本网站上WOPI / FSSHTTP的回答的组合。

https://github.com/thebitllc/WopiBasicEditor

答案 1 :(得分:1)

同时实施Cobalt方法进行编辑,像Julia一样,它停在一个不能编辑的屏幕上。甚至在锁定商店回调包括共同作者等之后。 然而,我发现OWA的日志系统显示了有关OWA服务器尝试执行的操作的相当详细的信息。     C:\ ProgramData \微软\ OfficeWebApps \ DATA \日志\ ULS 我可以从这些日志中看到它通过提供

来抱怨缺少访问令牌
    &access_token=1&access_token_ttl=0 

到了wopi url的末尾,这个错误消失了。

我还测试了许多文件信息字段,并且能够看到OWA服务器如何缓存信息。如果我们不断改变cfi.Version

FileInfo info = new FileInfo("C:\\WOPI OWA WORD EDITOR\\OWA_Source_Documents\\" + fi.Name);
cfi.Version = info.LastWriteTimeUtc.ToString("s");

每次我们通过普通单词更改文件内容时,我们都会获得一个新的缓存项目。

这些也会影响Word的查看模式,我怀疑会将我们锁定在单词编辑模式之外,但由于我没有工作,我还无法告诉你。

 cfi.SupportsCoauth = true; // all three (3) needed to see the edit in browser menu in view mode .
 cfi.SupportsCobalt = true; // all three (3) needed to see the edit in browser menu in view mode .
 cfi.SupportsFolders = true; // all three (3) needed to see the edit in browser menu in view mode .
 cfi.SupportsLocks = true;
 cfi.SupportsScenarioLinks = false;
 cfi.SupportsSecureStore = true;
 cfi.SupportsUpdate = true;

这个锁定单词编辑功能,除非你更新文件的版本,否则即使你把它改回假也会保持锁定。

cfi.WebEditingDisabled = false;

罗杰霍格

答案 2 :(得分:1)

感谢thebitllc正确获取文件的方法。

 System.IO.FileStream _FileStream = new System.IO.FileStream("C:\\WOPI OWA WORD EDITOR\\OWA_Updated_Documents\\output.docx", System.IO.FileMode.Create, System.IO.FileAccess.Write);
GenericFdaStream myCobaltStream =  new GenericFda(cobaltFile.CobaltEndpoint, null).GetContentStream();
myCobaltStream.CopyTo(_FileStream);
_FileStream.Close();