응용 프로그램 역할의 UI 요소를 승인하는 최선의 방법에 대한 일반적인 질문이 있습니다. 내 말은 일반 사용자가 볼 수없는 버튼, 메뉴 항목 등을 관리자가 볼 수 있다는 것입니다. 이것에 대한 가장 좋은 방법은 무엇입니까?.NET WinForms의 UI 요소 승인
역할 (관리자 화면, 사용자가 중복 된 동일한 화면 등)을 기반으로하는 여러 개의 화면이있을 수 있음을 알고 있습니다. 이는 지나치게 과장된 것처럼 보입니다. 나는 또한 나의 인증 코드가 디스플레이 기능과 섞이지 않도록 우려의 분리 (Separation of Concern)를 유지하기를 원합니다. 나는 내가하고 싶은 정확히 거의 보인다 PostSharp와 측면에서 찾고있다
if(current_user.IsInRole("administrator"))
button.Enabled = true;
하지만 논리적으로 UI를 확장하지 않는 것 : 즉, 나는 피하려고.
나는 뭔가를 놓치고 있다고 확신합니다. 무엇입니까?
감사합니다 - 당신의 코드가 결국 숨길 UI 요소의 목록을 컴파일, 나에게 주어진 작업을 수행 한 후 현재의 역할에 따라 해당 작업을 수행 할 것으로 보인다
Domenic -.. 감사의 SetPropertyIfInRoleAttribute을 (또는 SetPropertyByRole 속성)은 좋은 중간 지대처럼 보이며,이 순간에 저는 그 방향으로 기울고 있습니다. 위대한 설명, 명확히 해줘서 고마워. 이제는 Attribute 생성자의 lambda가 매우 유용 할 것입니다. – grefly
후속 조치로서, PostSharp를 사용하여 실행 한 것은 인스턴스 수준에서 .NET 프레임 워크 클래스 (텍스트 상자 등)를 꾸미므로 사용자 지정 특성을 얻을 수 없다는 것입니다. 나는 다시 같은 문제에 빠지게 될 것이라고 생각한다. 원래 질문에 대한 훌륭한 대답을 제공했지만 한 가지 대답으로 두 가지 질문이 더 많습니다. = D – grefly