SharePoint - FeatureActivated イベント中の [接続文字列] ダイアログ ボックス
-
08-06-2019 - |
質問
SharePoint 機能をアクティブ化またはインストールするときにユーザー/管理者にプロンプトを表示できるかどうかを知っている人はいますか?
カスタム Web パーツを作成しており、別のデータベースに接続しています。.wsp ファイルをインストールするとき、または機能をアクティブ化するときに、管理者が接続文字列を選択または入力できるようにしたいと考えています。
私は、FeatureActivated イベントの内部を調べており、SPWebConfigModification クラスを使用して、ファーム内の web.config ファイルに接続文字列を実際に書き込むことを考えています。
web.config を手動で編集したり、DLL に文字列をハードコードしたりしたくありません。
SharePoint 内で接続文字列を処理するための他の方法がある場合は、それらにも興味があると思います。
解決
残念ながら、機能アクティブ化プロセスを通じてユーザーを取得できる画面に切り替える方法はありません。あなたへのいくつかのコメント:
- 接続文字列はインストールごとに異なると想定しているため、それをソリューションに直接含めることはできません。
- インストール中にプログラムでこれを構築することはできなかったと思います。
したがって、ユーザー入力を取得する何らかの方法が必要です。以下にいくつかのオプションがあります。
- これは Web パーツのプロパティである可能性がありますが、Web パーツが追加されるたびに設定することになり、その後、それらの設定を個別に維持する必要があります。
- 独自の _layouts 設定画面を構築することもできます (良い投稿: http://community.zevenseas.com/Blogs/Robin/archive/2008/03/17/lcm-creating-custom-application-page-and-using-the-propertybag-more-detailed.aspx)、そこからユーザーはプロパティを管理して、Web プロパティ バッグまたは Web.Config 内に保存できます。私はできる限り Web.Config の使用を避けるようにしていますが、どうしてもこの方法を使用したい場合は、必ず SPWebConfigModification クラスを使用してください (この素晴らしいブログをお読みください: http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32)
- 最後に、私がよく使用する手法は、構成情報を SharePoint リストに保存することです。Chris O'Brien は、そのための素晴らしいフレームワークをここに示しています。 http://www.codeplex.com/SPConfigStore
それが役立つことを願っています、ダニエル
他のヒント
いいですね。これらの考えられる解決策を見ていきます。
すべて同じ connectionString を使用する単一のソリューション内に複数の Web パーツをデプロイしているため、#1 は機能しないと思います。
#3 は非常にクリーンな解決策のように思えます。構成アイテムがキャッシュされていることがわかり、接続文字列を保存する必要がある場合でも、その文字列が必要になるたびに SP ルックアップが発生することはないようです。
コードを調べてみると、アプリケーション固有の値を受け入れ、その値をFeatureTemplate.xml ファイルに追加して、それを Reciever の SPFeatureReceiverProperties オブジェクトに渡すインストーラーを作成しているようです。
この方法に取り組もうとしていましたが、#3 の方が良いと思います。
ありがとう、キース