1

私は現在、プライベートディスカッション掲示板を表示するためのSharePointWebパーツを開発しています。ディスカッションは、制限されたユーザーのみが表示できます。現在許可されているユーザーは、サイトコレクションの所有者、ディスカッション掲示板のメンバー、ディスカッション掲示板の所有者です。

Webパーツのセキュリティを設定する方法は、すべてのユーザーを取得し、それらがディスカッション掲示板で許可された人物に属しているかどうかを確認することです。

私のロジックは現在機能しているようですが、ここでのクライアントの懸念は次のとおりです。将来、ディスカッション掲示板の設定やセキュリティが変更され、Webパーツのコードを次のように修正することができなくなった場合はどうなりますか。 Webパーツの設定とセキュリティはディスカッション掲示板に同期されますか?今のところ私の考えは、ディスカッション掲示板の設定とセキュリティをコピーしてWebパーツに適用するコードを開発する代わりに、Webパーツの設定とセキュリティを直接ディスカッション掲示板に向けることです。今の私の質問は、これは可能でしょうか?

添付の写真を見て、私が何をしたいのかをよく理解してください。

最初の画像

2番目の画像

4

2 に答える 2

2

WebパーツはCheckPermissionsメソッドを使用する必要があります

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.checkpermissions.aspx

SPContext.List.CheckPermissions(SPBasePermissions.EditListItems);

このようにして、リストにのみアクセス許可を設定できます。

ユーザーに権限がない場合は、何も表示しないか、「権限がありません」というメッセージを表示します

于 2011-01-19T10:07:49.813 に答える
0

こんにちは私は問題を修正しました!

この単語は「DoesUserHavePermissions」を実行します...これが私のコードスニペットです

try
{
    string strListUrl = "http://MySite.com/List/MyDiscussion/AllItems.aspx";
    SPUser objCurrentUser = SPContext.Current.Web.CurrentUser;
    SPSite objSite = new SPSite(SPContext.Current.Web.Url);
    SPWeb objWeb = objSite.OpenWeb();
    SPList objList = objWeb.Lists[strListUrl];

    if(!objList.DoesUserHavePermissions(objCurrentUser,SPBasePermissions.EditListItems)){
        throw new UnauthorizedAccessException("You are not authorized to view this discussion!");
    }
}
catch(UnauthorizedAccessException uae){
    /// some exception handling codes here
}

@djeeg:助けてくれてありがとう!あなたに1票!:)

于 2011-01-19T11:22:54.850 に答える