2009-05-15 25 views
0

機能を有効にすることでユーザーがweb.configを変更できるようにするSharePointアプリケーションがあります。アプリケーションは拡張されているため、ADベースのWebアプリケーションとFBAアプリケーションを「メイン」ユーザーアプリケーションとするForms Based Authentication(FBA)を使用する別のアプリケーションがあります。フォームベース認証を使用してSharePointアプリケーションWeb.configファイルを変更する

アクティブ化された機能に必要な設定については、SPWebConfigModificationクラス(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx)を使用してweb.configに書き込みます。

これは物事のADベースの側で素晴らしい作品です。しかし、FBAベースのWebアプリケーションでこれを実行しようとすると、FBAサイトのサイトコレクション管理者がサーバー上のweb.configを変更するアクセス権を持たないため、エラーが発生します。彼らがFBAユーザーであることを考えると、サーバーにもその権利を与えることはできません。

誰もこれに遭遇しましたか?誰にも回避策はありますか?私は、コマンドライン経由でweb.conifgを更新するアプリケーションを試してみることができますが、機能を有効にしたときにユーザーが行うことが本当に好きです。私はweb.configのセキュリティ権を試してみることもできますが、それは始めるには悪い道です。

ありがとうございます! John

+0

実行時にweb.configファイルを変更する理由は何ですか?キー値のペア(appSettings)を設定するだけであれば、SharePointのプロパティバッグの設定を調べることをおすすめします。 web.configファイルをModyfing は2つの理由 1)これは、IISアプリケーションプールがリセットされます停止(したがって、小さな(またはあなたのサイズに応じて大規模なサイトコレクションを引き起こす)のために悪いです。 2)ウェブ.config変更はタイマージョブによって適用されます(したがって、変更を行うユーザーのコンテキストは無効です)。 – Jeff

答えて

0

代わりに、それを行うコンポーネントを記述することもできます。 これは、機能を有効にしたり、webpartを更新したりすることで可能です。

これは、セキュリティを緩める必要はなく、コマンドラインから行うこともできます。

+0

SPWebへの参照を取得しても、コンポーネントはユーザーのコンテキストで実行されませんか? web.configへのファイルアクセスの特権を昇格して実行する方法があるかどうかわかりません –

+0

このようなもの:http://boris.gomiunik.net/2009/04/spsecurityrunwithelevatedprivileges-and-access-denied- event-receiver-error/ これは直接動作するかもしれませんが。 – Bravax

+0

SPSecurity.RunWithElevatedPrivilegesを使用することは、現在のコードで動作する可能性があります。 – Bravax

関連する問題