Mam ogólne pytanie o najlepsze podejście do autoryzacji elementów interfejsu użytkownika dla ról aplikacji. Mam na myśli to, że Administrator widzi przyciski, pozycje menu itp., Których zwykły Użytkownik nie widzi. Jaka jest najlepsza praktyka w tym zakresie?Autoryzacja elementów interfejsu użytkownika w .NET WinForms
Zdaję sobie sprawę, że może istnieć wiele ekranów opartych na rolach (ekran administracyjny, ten sam ekran powielony dla użytkownika itp.), Co zdecydowanie wydaje się przesadą. Chcę również zachować separację problemów, aby mój kod autoryzacji nie był wymieszany z funkcją wyświetlania. Innymi słowy, chcę uniknąć:
if(current_user.IsInRole("administrator"))
button.Enabled = true;
czekałem na aspektach z PostSharp, co wydaje prawie dokładnie to, co chcę zrobić, ale nie wydaje się logicznie rozszerzyć do interfejsu użytkownika.
Jestem pewien, że czegoś mi brakuje, co to jest?
Dzięki -
Domenic -.. dzięki, SetPropertyIfInRoleAttribute (lub SetPropertyByRole Atrybut) wydaje się być miłym, pośrednim podłożem, i od tego momentu jestem pochylony w ten sposób. Świetne wyjaśnienie, dzięki za wyjaśnienie. Teraz widzę, lambda w konstruktorze Attribute byłaby bardzo przydatna! – grefly
Jako kontynuację, co napotkałem za pomocą PostSharp było to, że nie mogłem uzyskać niestandardowego atrybutu, ponieważ dekoruję klasy architektury .NET (pola tekstowe, itp.) Na poziomie instancji. Myślę, że znowu napotkam ten sam problem. Mimo że dostarczyłeś wspaniałą odpowiedź na oryginalne pytanie, jedna odpowiedź często prowadzi do dwóch dodatkowych pytań ... = D – grefly