SharePointにアクセスするためにMicrosoft.SharePoint.dll
またはWebサービスを使用するのではなく、SharePointサーバー側に(パッケージ/アドインなどを介して)自分のコードを挿入することを話しています。SharePointサーバー側へのフック
私の問題はこれです。ドキュメントライブラリがどのように動作するかをカスタム権限管理を含めてカスタマイズする必要があります。私はMicrosoft.SharePoint.dll
を調べて、その作業の内部を分析しています。私の所見は次のとおりです。
SPDocumentLibrary
は、ドキュメントライブラリを管理するためのコアロジックを提供します。しかし、それ自体はWebPart
ではありません。- ドキュメントライブラリの実際のWebパーツレンダリングは、おそらく
ListViewWebPart
または派生クラスによって処理されます。 - 実際に
SPPictureLibrary
クラスがあるため、SPDocumentLibrary
クラスを継承してドキュメントライブラリにカスタム動作を提供することができると想定されます。 WebPartAdder.SiteWebPartGalleryProvider
は何らかの方法でSPDocumentLibrary
をWebPart
Microsoft.SharePoint.WebPartPages.WebPartAdder.AddSources
の方法に接続しています。
これはすべてクライアント側であり、これはSharePointサーバー自体(afaik)では発生しません。私は本当に何をしたいのか
CheckPermissions
GetUserEffectivePermissionInfo
GetUserEffectivePermissions
EffectiveBasePermissions
など
されています。しかし、私は、具体的SPSecurableObject
SPDocumentLibrary
/SPList
そのオーバーライド、上のオーバーライドメソッドを参照してください上書きできるようにするCheckPermissions
/私のカスタムロジックを挿入するには、SharePointサーバー内のSPDocumentLibrary
に0を入力します。
私は今、私の研究をSharePointサーバー側のdllに分けて理解しています。しかし、私はこれが実現可能であるか正しい方向に指摘されているかについて専門家の意見を得たいと思っています。 Microsoftの特質(ベンチマークとしてASP.NET 2.0/ASP.NET MVCを特に考慮)は、拡張性/プロバイダーフレームワークです。彼らはすぐに使える優れたプロバイダを提供しますが、デフォルトプロバイダを置き換えるものを継承/実装することによってクラスを作成できます。したがって:
- SharePointサーバー側に挿入できますか。私の理想的な解決策は、
SPDocumentLibrary
派生クラス(サーバー側)を作成し、ドキュメントライブラリがインスタンス化されるたびにクラスオブジェクトが作成されるようにすることです(SPDocumentLibrary
の代わりにクラスサーバー側であると仮定します。 SharePointサーバー側のクラスを「反映」する必要があります)。 - 1)を指定していない場合は、
WebPart
というカスタムを作成して、ネイティブのドキュメントライブラリの感じが得られるようにSharePointドキュメントライブラリを使用できますが、そのWebパーツにアクセスするときにSPDocumentLibrary
派生クラス(私の議論はすべてSharePointサーバ側、つまりSharePointのアドレス空間/ w3wpプロセス内で実行されるコード)を中心にしています。 - なぜ論理が
SPSite.EffectiveBasePermissions
にあるのですか?私はそれがCSOMであるはずであることを意味し、サーバから返されるもののシリアライゼーション/デシリアライゼーションを単に担うべきです。しかし、私は、このオーバーライドされた財産の中で、許可の推論を中心に精巧な論理を見ています。 - 1)と2)の両方がノーオペレーション(文字通り:)の場合、SharePointがこれらのアクセス許可に基づいてアクションを実行する前に、SharePointの有効なアクセス許可を操作するオプションがあります。
長い質問がありましたが、うまくいけば私はよく研究しています。
カスタムロールプロバイダの実装を検討しましたか?たぶん、いくつかのカスタムクレームをドキュメントライブラリに適用し、これらのカスタムクレームを実行中のIDに挿入することができます。 http://geekswithblogs.net/GinoAbraham/archive/2017/03/21/custom-role-claim-based-authentication-on-sharepoint-2013.aspx –