3

いくつかの WebDAV 機能を提供する Web アプリケーションを開発しており、これらを実装するために、.NET 用の IT-Hit サーバー エンジン コンポーネントを評価しています。

目的は、何らかの内部ロジックに基づいて、特定の MS Office ドキュメントを読み取り/書き込みモードまたは読み取り専用モードでユーザーに提供することです。Visual Studio の WebDAV テンプレート アプリケーションとオンライン ドキュメントを通じて調査を試みましたが、これを達成する具体的な方法は見つかりませんでした。より具体的な参考文献はどこにありますか?

さらに、ユーザーがいつ MS Office アプリケーション (すなわち MS Word) を閉じて、ドキュメントとの対話を完了したかを知ることは可能ですか?

4

1 に答える 1

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によってロック解除されない場合、サーバーの実装では通常、ロックの有効期限が切れた後にファイルのロックが自動的に解除されることに注意してください。

WebDAVロックがどのように機能するかについてもこちらをお読みください。

于 2013-03-01T07:08:23.323 に答える