我为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”的用户无法看到此属性。
答案 0 :(得分:1)
在阅读this article并进行一些调查后,我得到了关于网络部件的SafeContol
标记的以下结果。必须对未经许可的用户添加和自定义页面添加/删除或修改的Web部件应用以下注意事项。
TypeName
属性应使用特定的类型名称而不是通配符。 Safe
设置为“True” SafeAgainstScript
也设置为“True”
SafeControl标签看起来与此类似: <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”属性值。