Sharepoint 上の ASPX ページの条件付き表示
-
09-06-2019 - |
質問
このシナリオのベスト プラクティスは何だろうかと思います。
Sharepoint サイト (MOSS2007) に ASPX ページがあります。ただし、Sharepoint ではデフォルトで ASPX ページのサーバー サイド スクリプトが許可されていないため、インライン ソースは使用できず、イベント ハンドラーなども機能しません。
2 つの解決策:
変更
PageParserPath
で web.config に従って このサイト<PageParserPaths> <PageParserPath VirtualPath="/pages/test.aspx" CompilationMode="Always" AllowServerSideScript="true" /> </PageParserPaths>
すべてのコントロールを作成し、それらをイベントに接続します。 .CS ファイルなので、ASP.net の利点の一部が完全に失われます。
ベストプラクティスは何でしょうか?1 番目が正しい選択のように見えますが、 web.config できる限り控えめに使いたいものです。
解決
その場合、私はそれを機能にラップし、ソリューションを介してデプロイします。こうすることで、発生している問題を回避できると思います。これは、他のサイト内でもこの機能を使用する予定がある場合に特に便利です。
WebControl と同じように、Web パーツをページに直接埋め込むこともできるため、ギャラリーが乱雑になるのを避けることができます。
他のヒント
ASPX ページは何をするのですか?どのような機能が追加されるのでしょうか?ページをサイトにどのように追加しますか?一見すると、これはドキュメント ライブラリ内の単なる "Web パーツ ページ" です。
100% であるためには少し調査する必要がありますが、ゴースト化されたままで信頼できるページ内にある限り、インライン コードは問題ない、というのが私の理解です。フィーチャー経由でサイトに機能を追加できますか?
選択肢 1 は避けたいと思いますが、私にとっては悪いアドバイスのように思えます。ページ内でサーバー側のコードを許可すると、誰かが悪意のあるコードを挿入する可能性が生じるため、セキュリティ リスクが生じます。確かにページを保護することはできますが、ここで話しているのは、おそらくかなり深刻な権限を伴うリモート実行です。
これまでありがとう。Andrew Connel の解決策を試して成功しました。
http://www.andrewconnell.com/blog/articles/UsingCodeBehindFilesInSharePointSites.aspx
それをソリューションにラップすることはその一部ですが、主な問題はコードをソリューションに取り込む方法であり、コード内にコントロールを作成する必要がないオプション 2 に傾いています。
私に欠けていたもの:
.csファイルでは、「保護されたボタントリガー」を手動で追加する必要があります。クラスライブラリを使用するときに.designer.csファイルが自動的に生成されないため、もの。
これはユーザー コントロールをホストするページです。これは、特に WebPart を作成したくないため、サイト上に作成されるカスタム .aspx ページです。
これは基本的に Sharepoint 内で実行され、リストやその他の機能を利用するアプリケーションですが、すべての機能はアプリケーション内でのみ役立つため、1 か所でのみ機能する無数の Web パーツで Web パーツ ギャラリーがあふれることは避けたいと考えています。