3

私は現在、Mark Leusink による OpenNTF Multiple File Uploader を実装しています。

この非常に優れたカスタム コントロールは、xAgent を使用して、選択した添付ファイルをターゲットの Notes ドキュメントに埋め込みます。Authors フィールドと Readers フィールドを Notes 文書に追加するまでは、すべて正常に機能していました。ファイルのアップロード時にセキュリティ エラー (402) が発生します。

私の考えでは、アップロード xAgent はターゲット ドキュメントを編集してファイルを添付することはできません。セキュリティ フィールドを削除すると、すべてが再び機能します。

私の質問は、xAgents は現在のユーザーと同じセキュリティで実行されますか? そうでない場合、Lotus Script エージェントの場合と同様に、xAgent に「実行」ユーザーを設定できますか?

4

3 に答える 3

5

xAgent のコードを見て、sessionAsSigner を使用してデータベース/ドキュメントにアクセスし、ファイルをアップロードするように書き直すことをお勧めします。これにより、アプリケーションの署名者として実行され、実行中のセキュリティの問題が回避されます。

于 2012-04-21T14:42:38.393 に答える
2

Tom と Declan の答えはどちらも正しいですが、これはファイル アップローダには当てはまりません。

Flash コンポーネントを使用して実際のアップロードを行います (SWFUpload と呼ばれます)。ブラウザーの Cookie は Flash と共有されないため、ユーザーのセッション Cookie をファイルと共に送信することはできません。そのため、アップロードを実行しているユーザーは、Domino サーバーにログインしていません (別名、匿名)。そのため、アップローダは、ACL 内のパブリック ドキュメントの読み取り/書き込みを匿名ユーザーに許可する必要があり、アップロードされたファイル ( aUpload.xsp ) を処理する XPage/XAgent が「パブリック アクセス ユーザー」を許可するように設定されています。sessionAsSignerオブジェクトを使用してデータベースのコンテンツにアクセスします

通常、上記の設定では、誰でもファイルを匿名でアップロードできます。そのため、Mark Ba​​rton のアイデアに基づいてカスタム認証ソリューションを実装しました。すべてのファイルがアップロードされる前に、XPage に対して一意のキーを取得するための要求が行われます。その XPage ( aGetAuth.xsp ) は、ユーザーの資格情報の下で実行され、キーをデータベース内のドキュメントに保存します。このキーは、アップロードされたファイルとともに送信され、保存されているキーと比較されます。キーが一致する場合にのみ、アップロードが許可されます。

最初に、aUpload.xsp XAgent のコードが sessionAsSigner 呼び出しを使用してターゲット ドキュメントを読み書きできるかどうかを確認します。

于 2012-04-22T09:11:32.257 に答える
0

マーク、デクラン、ティム、参加してくれてありがとう。

現在のデータベースを取得するためxAgent **aGetAuth.xsp**に使用するように変更しました。sessionAsSigner最初はエラーが発生しまし"sessionAsSigner not found"た。

Google は、テストの前にテンプレートに再署名するという簡単な答えを示しました。テンプレートに2回再署名し、「クリーン」を実行すると、すべてがうまく機能します。

于 2012-04-22T23:58:18.137 に答える