2017-02-02 4 views
1

우산 회원 (끝 멤버로부터)에 대한 비밀번호 재설정 토큰을 저장해야합니다. 지금은 솔루션을 얻으려면 속성을 만들고 사용하는 것입니다. 그러나 문제는이 토큰이 모든 사람에게 숨겨져 있어야한다는 것입니다. 패키지에 대한 의존성을 추가하지 않고 속성을 숨길 수있는 명확한 접근법이 있습니까?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에 아무 것도 표시하지 않는지 확인하십시오. 그런 다음이 편집기를 사용하여 멤버에 사용자 지정 속성을 추가하면 백 오프 UI에 나타나지 않고 코드로 값을 저장할 수 있습니다.

여기에 속성 편집기를 만드는 방법에 대한 지침이 있습니다. 백 오피스를 통해 에디터에서 값을 표시하거나 편집 할 필요가 없으므로 대부분의 파트를 건너 뛸 수 있습니다. 단순히 비공개 값에 대한 데이터 컨테이너의 일종으로 사용하거나 암호.

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

0

당신은이를 달성하기 위해 label 속성 편집기를 사용할 수 있습니다. 멤버 유형으로 이동하여 레이블을 추가하기 만하면됩니다. 데이터 유형을 선택할 수 있으며, 사용자의 값을 숨기거나 편집 할 수 없게하는 옵션도 있습니다.

나는 이것을 자주 사용하여 umbraco back office의 회원 프로필에서 편집하거나보고 싶지 않은 필드를 업데이트했습니다.