我们正在开发一个Web应用程序,它将提供一些WebDAV功能并实现这些功能,我们正在评估.NET的IT-Hit服务器引擎组件。
目的是基于某些内部逻辑以读写或只读模式为用户提供某个MS Office文档;我们试图通过Visual Studio中的WebDAV模板应用程序和在线文档进行调查,但我们还没有找到实现这一目标的具体方法。我们在哪里可以找到更具体的参考?
此外,是否可以知道用户何时关闭了MS Office应用程序(即MS Word)并完成了他/她与文档的交互?
答案 0 :(得分:0)
要使文件为只读,您可以在文件项上实现IMsItem接口。您的IMsItem.GetFileAttributes方法实现必须返回文件的只读属性:
public FileAttributes GetFileAttributes()
{
...
if(/*this file is read-only*/)
{
return fileSystemInfo.Attributes | FileAttributes.ReadOnly;
}
...
}
请注意,此代码实际上不会保护文件不被修改,它只会将文件标记为只读。如果应用程序忽略只读标志,它可能会覆盖该文件。为了确保不会发生这种情况,在IFile.Write方法实现中,您必须验证用户是否有权修改文件,并且文件不是只读的。如果文件是只读的 - 抛出异常。
Microsoft Office在打开时锁定文件,在关闭时解锁。因此,当文件关闭时,在服务器端调用ILock.Unlock()方法。请注意,如果连接丢失且文件未被MS Office解锁,您的服务器实现通常会在锁定到期后自动解锁文件。