【问题标题】:Sharepoint discussion board, replicate the settings and rules to a webpartSharepoint 讨论板,将设置和规则复制到 Web 部件
【发布时间】:2011-06-11 15:18:23
【问题描述】:

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

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

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

请查看附图以更好地了解我想要发生的事情。

【问题讨论】:

    标签: sharepoint sharepoint-2007 web-parts sharepoint-discussion-board


    【解决方案1】:

    Web 部件应使用 CheckPermissions 方法

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

    SPContext.List.CheckPermissions(SPBasePermissions.EditListItems);
    

    这样你可以只对列表设置权限。

    如果用户没有权限,则不显示任何内容或显示“您没有权限”的消息

    【讨论】:

    • SPBasePermissions.EditListItems 是否允许用户查看列表,尽管他们的角色只允许他们查看讨论但不能贡献。因为我在讨论板上有一个小组,其中包含特定成员,只允许查看讨论,但不允许他们发帖。
    • 谢谢 djeeg!虽然您的回答并不完全是解决方案,但它给了我解决问题的线索。 :)
    【解决方案2】:

    您好,问题已解决!

    这个词的作用是“DoesUserHavePermissions”...这是我的代码 sn-p

    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票给你! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多