2010-10-21 27 views
0

我已經爲SharePoint 2010創建了Web部件,其中包含簡單的定製屬性PersonalizationScope.User。 Web部件從System.Web.UI.WebControls.WebParts.WebPart個人化的Web部件定製屬性未爲具有Contribute權限級別的用戶顯示

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部件工具窗格。但是,標準權限級別「捐助」的用戶無法看到此屬性。

回答

1

在閱讀this article和一些調查後,我得到了關於網頁部分的SafeContol標籤的以下結果。對於未經許可的用戶添加和自定義頁面可以添加/刪除或修改的Web部分必須應用以下注意事項。

  1. 在SP 2010 TypeName標記的屬性應該使用特定的類型名稱而不是通配符。
  2. 屬性Safe設置爲「真」
  3. 屬性SafeAgainstScript也設置爲「真」 和的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屬性的Web部件項目。因此,您需要更改Web部件項目屬性安全控制條目具有特定類型名稱和「SafeAgainstScript」屬性權值的集合條目。

相關問題