具有Contribute权限级别的用户未显示可个性化Web部件自定义属性

时间:2010-10-21 06:38:08

标签: permissions sharepoint-2010 web-parts

我为SharePoint 2010创建了Web部件,其中包含带有PersonalizationScope.User的简单自定义属性。 Web部件继承自System.Web.UI.WebControls.WebParts.WebPart

private int _mainBodyBorderWidth = 0;
    [Personalizable(PersonalizationScope.User),
     WebBrowsable(true),
     WebDisplayName("Main Body Border Width"),
     WebDescription("Set main body border width"),
     Category("Style")]
    public int MainBodyBorderWidth
    {
        get
        {
            return _mainBodyBorderWidth;
        }
        set
        {
            _mainBodyBorderWidth = value;
        }
    }

当站点管理员或具有添加和自定义页面权限的用户单击“个性化页面”而不是“编辑我的Web部件”此属性时将显示在Web部件工具窗格中。但是,标准权限级别为“Contribute”的用户无法看到此属性。

1 个答案:

答案 0 :(得分:1)

在阅读this article并进行一些调查后,我得到了关于网络部件的SafeContol标记的以下结果。必须对未经许可的用户添加和自定义页面添加/删除或修改的Web部件应用以下注意事项。

  1. 在SP 2010中,标记的TypeName属性应使用特定的类型名称而不是通配符。
  2. 属性Safe设置为“True”
  3. 属性SafeAgainstScript也设置为“True” SafeControl标签看起来与此类似:
  4. <SafeControl Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.WebPartPages" TypeName="ListViewWebPart" Safe="True" SafeAgainstScript="True" />

    但是,VS 2010默认为TypeName属性生成通配符“*”,为SafeAgainstScript属性生成“False” Web部件项。因此,您需要更改 Web部件项属性安全控件条目集合条目,其中包含特定类型名称和“SafeAgainstScript”属性值。