Temat: [ASP.NET] Początki ..
Paweł, jakbyś to zrobił? widzę, że domyśliłeś się o co mi chodzi :) jak zastosować blokadę do poszczególnych kontrolek. Kierując się się artykułem, który podał Łukasz mógłbym powielać formatki usuwając z nich niektóre kontrolki i taką formatkę o mniejszej funkcjonalności udostępniać zwykłym użytkownikom ale to jest powielanie kodu..
Troszeczkę odpowiem wymijająco, bo temat jest rozwlekły.
Najprościej to "zahardkodować" i pokazywać kontrolkę w zależności od if UserIsInRole. W taki sposób najszybciej stworzysz coś działającego.
Jest tutaj wszakże 'ALE' - taki "dizajn" mocno Cię ogranicza w momencie, w którym będziesz chciał dać użytkownikom możliwość tworzenia własnych ról, lub po prostu umyślisz sobie dodanie roli bo pokazywanie kontrolki uzależniasz od roli, i będziesz musiał każdy if pieczołowicie uzupełnić. Tu się sprawa zagęszcza i można/należy próbować iść w kierunku nakreślonym przez Adriana powyżej (własne metody - czy użytkownik może coś zrobić). Oczywiście pociąga to za sobą nieco większą pracochłonność. potencjalnie powinieneś każdej istotnej metodzie (czy to wręcz kontrolce, czy przyciskowi - do wyboru do koloru) nadać jakieś ID w tabelce i pobawić się tabelkami linkującymi aby stworzyć mapę tego, co komu wolno - niemniej robi się z tego coraz więcej zachodu. Zastanów się, czy aby na pewno potrzebujesz takiej armaty - może polujesz na komara. :)
Inne podejście to stworzenie dedykowanych folderów dla grup użytkowników (wariant UserIsInRole) i tam umieszczać dedykowane strony aspx dla danej grupy - wtedy możesz sprawdzić czy ktoś otwierający daną stronę jest aby na pewno w roli, dla której dany folder jest przeznaczony. Z jednej strony to redundancja, ale tworząc user-controls możesz złagodzić ten efekt.
Możesz sobie ściągnąć kod nopCommerce i go pooglądać - tam mają ekstremalne podejście do user-kontrolek. :)
Paweł Boczula edytował(a) ten post dnia 11.06.12 o godzinie 09:17