2009-08-20 9 views
2

私はSharePointをそのまま動作させたいと思いますが、ドキュメントをユーザーに返す前に、ドキュメントを傍受してユーザー固有の追加/変更を行うオプションが必要です。SharePoint:ドキュメントがクライアントに返される前にドキュメントを傍受/変更することは可能ですか?

基本的には: 1)SharePointでファイルを開くためのコードを調整することはできますか? 2.そうであれば、ユーザー固有の基準で行うことができます(たとえば、特定のクラスのユーザー以外のすべてのユーザーのデフォルトコードを使用します)。 3)1と2を仮定すると、返されようとしていたファイルを傍受し、それを変更します(おそらくそれを別のファイルに置き換えることさえあります)。

(私はIISのレベルでこれを行うに希望されない)

おかげで、 レット

+0

ここであなたのユースケースは何ですか?あなたは何を達成しようとしていますか?いくつか例を挙げることができますか? –

+0

例は、ユーザ固有のトークン(例えば、ユーザ名または電子メールアドレス)を用いた透かし入れである。 – Rhett

答えて

0

あなたは、「ファイルを開く」とはどういう意味ですか?リストアイテムを表示するか、ドキュメント自体を開く?

どちらの方法でも、SharePoint Designerを使用してリストフォームを編集できます。または、そのリストのコードビハインドを作成し、OnLoadイベントやjavascriptのものを添付ファイルのリンクをダウンロードすることで何でもできます。

また、ドキュメントに透かしを入れたい場合は、コードビハインド(practical example here)を作成し、OnLoadイベントをオーバーライドして(フォームを開くとき)、それらのドキュメントにアクセスしてパラメータを設定することができます。

さらに、OnUnloadを使用すると、ドキュメントを再度修正して変更を元に戻すことができます。

複数のユーザーが同じドキュメントにアクセスする場合はどうなりますか?さて、あなたは実際にjavascriptで元の文書を隠し、そのユーザーのために準備されたコピーを表示し、OnUnloadでそれを破棄することができます。

ただし、Outlookではなくウェブから文書にアクセスする場合にのみ機能します。

+0

UIを見ると、文書を開く方法は2通りあります。ドキュメントのリンク(http://sharepoint/directory/document.docなど)をクリックするか、[編集...]メニュー項目をクリックします。フードの下で、リンク(上記のようなもの)または「Edit in ...」メニュー項目をクリックするとどうなりますか? – Rhett

+0

ああ、間違ったコメントを削除しました。関数呼び出しツリーをチェックアウトし、リストアイテムのタイトルをクリックするとどうなりますか。スクリーンショットを参照してください:http://img268.imageshack.us/img268/7448/ss20090821091459.png "Edit in ..."を押すとcore.jsから "STSNavigateWithCheckoutAlert"が呼び出されます –

1

私はあなたがここでやるべきことは、ドキュメント(例えば、Wordファイル - doc/docx)のHttpHandlerを作成することだと思います。お役に立つかもしれないlinkがあります。また、thisリンクは、HttpHandlersの作成方法の詳細を示します。

ファイルの拡張子がわからないので、ドキュメントを処理するハンドラをどのようにフックするかはあまりよく分かりませんが、しかし、あなたはその考えを得る。

+0

これは私の最初の考えでしたが、私はIISに訴えたくありません。 – Rhett

0

SPItemEventReceiverをライブラリに追加し、ItemUplodedをオーバーライドする機能を作成します。または、このtoolを使用して、イベントをlybraryに追加します。

+0

開いているユーザーごとに異なる文書を変更する必要があります。だから、これがうまくいくとは思わないでください。 –

0

カスタムページを使用してドキュメントをロードし、クライアントに送信する前にドキュメントを処理することは可能でしょうか?

質問には、「すべての関連するリンクを文書に直接ではなくリダイレ​​クトするこのページを指し示す方法」があります。当然のことながら、特にWebDAVの

0

HTTPHandlerのを経由して文書を扱う場合には、不可能かもしれ

は、あなたがされている文書を変更する機能を持っているIIS/Asp.Net/SharePointのスタックで唯一の場所でありますユーザーに送信されます。これがSharePoint以外では、実際にはHTTPHandlerがAsp.Netの一部であり、SharePointがAsp.Netアプリケーションであると考えるとは限りません。

コードをパッケージ化してSharePointソリューションとして展開し、機能のアクティベーションによってweb.configが自動的に変更され、ハンドラがアクティブ化されるようにすることもできます。

関連する問題