Sharepoint讨论板,将设置和规则复制到Web部件

Sharepoint讨论板,将设置和规则复制到Web部件,sharepoint,sharepoint-2007,web-parts,sharepoint-discussion-board,Sharepoint,Sharepoint 2007,Web Parts,Sharepoint Discussion Board,我目前正在开发一个sharepoint Web部件以显示私人讨论板。讨论只能由有限的用户查看。目前允许的以下用户可能是:网站集所有者、讨论板成员、讨论板所有者 我设置Web部件安全性的方法是获取所有用户,并检查他们是否属于讨论板中所述的允许人员 我的逻辑似乎正在发挥作用,但我的客户关心的是: 如果将来他们会更改讨论板的设置或安全性,而我可能不再修复Web部件的代码,从而使Web部件的设置和安全性与讨论板同步,该怎么办? 我现在的想法是,我将直接将Web部件的设置和安全性指向讨论板,而不是开发复制

我目前正在开发一个sharepoint Web部件以显示私人讨论板。讨论只能由有限的用户查看。目前允许的以下用户可能是:网站集所有者、讨论板成员、讨论板所有者

我设置Web部件安全性的方法是获取所有用户,并检查他们是否属于讨论板中所述的允许人员

我的逻辑似乎正在发挥作用,但我的客户关心的是: 如果将来他们会更改讨论板的设置或安全性,而我可能不再修复Web部件的代码,从而使Web部件的设置和安全性与讨论板同步,该怎么办? 我现在的想法是,我将直接将Web部件的设置和安全性指向讨论板,而不是开发复制讨论板的设置和安全性并将其应用于Web部件的代码。我现在的问题是,这可能吗

请看附件中的图片,以便更好地了解我想要发生的事情


web部件应使用CheckPermissions方法

这样,您只能在列表上设置权限


如果用户没有权限,要么什么也不显示,要么显示一条消息说“您没有权限”

嗨,我已经解决了这个问题

这个词的意思是“doesusherhavepermissions”。。。这是我的代码片段

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
}

@谢谢你的帮助!我投你一票!:)

SPBasePermissions.EditListItems是否允许用户查看列表,尽管他们的角色仅允许他们查看讨论,但不允许他们参与。因为我在讨论板上有一个特定成员的小组,他们只允许查看讨论,但不允许发布。谢谢!虽然你的答案并不完全是解决问题的办法,但它给了我解决问题的线索
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
}