2017-02-02 133 views
1

我需要爲umbraco成員(來自最終成員)存儲密碼重置令牌。現在我得到的解決方案是創建一個屬性並使用它。但問題是這個標記應該隱藏在每個人面前。是否有任何干淨的方法來隱藏屬性(不添加對包的依賴)?使Umbraco屬性隱藏

到目前爲止approach我發現這個樣子的,但是我正在尋找更簡單的方法,使財產隱藏:

public class ApplicationHandler : ApplicationEventHandler 
{ 
    public ApplicationHandler() 
    { 
     ContentControl.AfterContentControlLoad = new ContentControl.AfterContentControlLoadEventHandler(ContentControl_AfterContentControlLoad); 
    } 

private void ContentControl_AfterContentControlLoad(ContentControl contentControl, ContentControlLoadEventArgs e) 
    { 
    int docId = 0; 
     int.TryParse(HttpContext.Current.Request["id"], out docId); 
     IContent content = ApplicationContext.Current.Services.ContentService.GetById(docId); 

    Control ctl = umbraco.presentation.LiveEditing.Utility.FindControl<Control>(delegate(Control c) 
      { 
       return c.ClientID.EndsWith("propertyAliasToHide"); 
      }, contentControl.Page); 
    HideProperty(ctl); 
} 

private void HideProperty(Control control) 
    { 
     if (control != null) 
     { 
      Control parent = control.Parent; 
      if (parent != null) 
      { 
       if (parent.Parent != null) 
       { 
        if (parent.Parent.Parent != null) 
        { 
         parent.Parent.Parent.Visible = false; 
        } 
       } 
      } 
     } 
    } 
    } 

回答

3

最簡單的方法是簡單地創建一個屬性編輯器,像內置的一把umbraco標籤一個然後確保它不會在用戶界面中顯示任何內容。然後,您可以使用此編輯器將自定義屬性添加到成員,並且您可以通過代碼保存其中的值,而不必在後臺UI中顯示該值。

這裏有創建屬性編輯器的說明。您可以跳過他的大部分部分,因爲您不需要顯示或能夠通過後臺編輯編輯器中的值 - 您只是將其用作一種數據容器,用於隱藏值的訪問和修改碼。

https://our.umbraco.org/documentation/tutorials/Creating-a-Property-Editor/

0

你可以使用標籤屬性編輯器來實現這一目標。只需轉到成員類型並添加標籤即可。您可以選擇數據類型,也可以選擇隱藏用戶的值或使其不可編輯。

我已經經常使用它來更新字段,我不想從umbraco後臺的成員配置文件中編輯或查看。