Microsoft.SharePoint.dll
SharePointにアクセスするために Web サービスを使用するのではなく、(パッケージ/アドインなどを介して) SharePoint サーバー側にコードを挿入することについて話していることに注意してください。
したがって、私の問題はこれです。カスタム権限管理を含め、ドキュメント ライブラリの動作をカスタマイズする必要があります。Microsoft.SharePoint.dll
私はその動作の内部を分析して閲覧しています。ここに私の観察があります:
SPDocumentLibrary
ドキュメント ライブラリを管理するコア ロジックを提供します。ただし、WebPart
それ自体ではありません。- ドキュメント ライブラリの実際の Web パーツ レンダリングは、おそらく、
ListViewWebPart
または派生クラスによって処理されます。 - 実際には、クラスを継承してドキュメント ライブラリでカスタム動作を提供
SPPictureLibrary
できる可能性があると思わせるクラスがあります。SPDocumentLibrary
WebPartAdder.SiteWebPartGalleryProvider
何らかの方法でSPDocumentLibrary
そのWebPart
内部Microsoft.SharePoint.WebPartPages.WebPartAdder.AddSources
メソッドに接続しています。
これはすべてクライアント側であり、SharePoint サーバー自体では発生しません (afaik)。ただし、SPSecurableObject
そのSPDocumentLibrary
/SPList
オーバーライドでオーバーライド可能なメソッドが表示されます。具体的には次のとおりです。
CheckPermissions
GetUserEffectivePermissionInfo
GetUserEffectivePermissions
EffectiveBasePermissions
など
私が本当にやりたいことは、内部の SharePoint サーバーでCheckPermissions
/をオーバーライドして、カスタム ロジックを挿入できるようにすることです。EffectiveBasePermissions
SPDocumentLibrary
ここで、調査を SharePoint サーバー側の dll に転用し、それらを理解します。しかし、これが実現可能かどうか、または正しい方向に向けられているかどうかについて、専門家の意見を聞きたいです。Microsoft の特徴 (特に ASP.NET 2.0 / ASP.NET MVC をベンチマークとして考慮する) は、拡張性 / プロバイダー フレームワークです。それらはすぐに使用できる「もの」の優れたプロバイダーを提供しますが、デフォルトのプロバイダーを置き換えるために何かを継承/実装することにより、クラスを作成できます。そう:
- SharePoint サーバー側に挿入できますか? 私の理想的な解決策は、
SPDocumentLibrary
派生クラス (サーバー側) を作成し、それを挿入して、Document ライブラリがインスタンス化されるたびに、クラス オブジェクトが作成されるようにすることです (代わりにSPDocumentLibrary
、それがサーバー側のクラスであると仮定するのではなく、. SharePoint サーバー側クラスを "反映" します)。 - 1) がダメなら
WebPart
、SharePoint ドキュメント ライブラリを使用するカスタムを作成して、ネイティブ ドキュメント ライブラリのように感じさせながら、SPDocumentLibrary
その Web パーツにアクセスするときに派生クラスを使用できるようにすることはできますか (再度注意してください。私の議論はすべて、SharePoint サーバー側、つまり、SharePoint のアドレス空間/w3wp プロセス内で実行される私のコードに関するものです)。 - なぜ私たちはロジックを持っている
SPSite.EffectiveBasePermissions
のですか?つまり、CSOM であると想定されており、サーバーから返される/サーバーに送信されるもののシリアル化/逆シリアル化を単に担当する必要があります。ただし、このオーバーライドされたプロパティには、アクセス許可の推測を中心に展開する精巧なロジックが見られます。 - 1) と 2) の両方がノーオペレーション (文字通り :)) である場合、SharePoint がそれらのアクセス許可に基づいて何らかのアクションを実行する前に、SharePoint のアドレス空間で操作しているときに SharePoint の有効なアクセス許可を操作するオプションはありますか?
私はそれが長い質問であることを知っていますが、うまくいけば私は自分の研究をうまくやっています.