konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Witajcie!

Rozpoczynam realizację mojego pomysłu na pewien portal web2.0 i potrzebuję oczywiście zrealizować w nim różne poziomy dostępu różnych użytkowników.
Szukałem to na forum tutaj jednak tylko wypowiedź, że jest to proste ale co i jak to ani słowa:)
Mam za sobą trochę wprawek z ASP.NET i chcę ten projekt wykorzystać by przede wszystkim dużo się nauczyć ale mam nadzieję i stworzyć gotowy,fajny portal więc chcę to zrobić naprawdę dobrze.
miałem pewne doświadczenie z ACL w PHP (konkretnie to w CakePHP), było to tam częściowo zautomatyzowane jednak strzelam, że w ASP jest to jeszcze wygodniejsze tylko trzeba wiedzieć od której strony się za to zabrać i dlatego proszę o waszą pomoc

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Może to się przyda:
http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx
Kamil Sławiński

Kamil Sławiński Senior iOS Developer

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Jeżeli chcesz nauczyć się czegoś nowego, można by taką funkcjonalność zrealizować poprzez aspekt (to akurat niezależnie od ASP). Polecam poczytać trochę o Aspect Oriented Programming.

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Temat jest obszerny, a odpowiedź zależy od modelu uprawnień, jaki chcesz wprowadzić. Warto, abyś napisał coś więcej.
W ogólności klasy powiązane z Membership i MembershipProvider odpowiadają za przechowywanie i tworzenie użytkowników w oparciu o jakieś źródło danych/informacji. Klasy Role i RoleProvider odpowiadają za przechowywanie informacji o tym, do jakich "grup" użytkownik przynależy.

W przykładowych projektach ASP.NET, albo template'ach masz skonfigurowane to często w ten sposób, że obie te funkcjonalności są ze sobą spięte i opierają się najczęściej o połączenie do serwera MS SQL (o aliasie "aspnetdb" o ile pamiętam). Dodawanie użytkowników, ról itp. powoduje przechowywanie stosownych informacji w bazie danych. Można też rozbudować klasę przechowującą dane użytkownika i jej poszczególne właściwości też są przechowywane przez ten mechanizm. Ale - jak napisałem - temat jest obszerny, więc potrzeba szczegółowych pytań z twojej strony.

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

szczegółowych pytań czy odpowiedzi bardziej?

założenia na dzień dzisiejszy wygladają tak:
- kilku użytkowników z rangą global-admin którzy mogą edytować i zarzadzać wszystkim co jest w systemie
- kilku group-admin'ów dla każdej grupy(grup będzie sporo i będą je zakładać użytkownicy). taki admin może przyjmować prośby o członkostwo w jego grupie(tak po prostu ma być choć może brzmi głupio ale sens jest zweryfikowany, bez obaw), zarządzać wszelkimi treściami należącymi do jego grupy
- junior admini w grupach którzy mają okrojone uprawnienia group-admina.
- zwykli user'y którzy mogą korzystać z tego co należy do ich grupy/grup.

a co do szablonów, fajnie by było gdyby jakiś zalążek był a rzeczywiście trzeba by było to po prostu rozbudowywać.
widziałem gdzieś na stronie MS opis ACL na .NET 4.0 ale jeszcze się w to nie wgłębiałem. czy membership i acl o którym mówię to nie są bliźniacze projekty?

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Marek Urbanowicz:
szczegółowych pytań czy odpowiedzi bardziej?

pytasz o coś, co ci pozwoli uzupełnić obraz sytuacji, albo mówisz jakbyś chciał i czekasz, co inni na to powiedzą...
Ja wolę pytać :)
założenia na dzień dzisiejszy wygladają tak:
- kilku użytkowników z rangą global-admin którzy mogą edytować i zarzadzać wszystkim co jest w systemie
- kilku group-admin'ów dla każdej grupy(grup będzie sporo i będą je zakładać użytkownicy). taki admin może przyjmować prośby o członkostwo w jego grupie(tak po prostu ma być choć może brzmi głupio ale sens jest zweryfikowany, bez obaw), zarządzać wszelkimi treściami należącymi do jego grupy
- junior admini w grupach którzy mają okrojone uprawnienia group-admina.
- zwykli user'y którzy mogą korzystać z tego co należy do ich grupy/grup.

Zacznę od końca, bo tu akurat prościej coś dopowiedzieć. Można prosto zdefiniować role użytkowników. Tu powinno być nawet bardzo prosto, Role provider ma metody pozwalające na dodanie roli, którą potem przechowuje.
Np. global-admin, group-admin, junior-admin. Dla user'a można wywołać metodę sprawdzającą typu IsInRole... Nie zrobisz z tego systemu, gdzie można nadać uprawnienia na każdą kartotekę z osobna, tak, by każdy użytkownik mógł mieć własny zestaw uprawnień (a przynajmniej nie zrobisz tego bez nadawania wielu nadmiarowych ról), natomiast do twoich potrzeb wydaje się akurat.

Z zakładaniem użytkowników może być więcej komplikacji, zwłaszcza jeśli chcesz mieć mechanizm kontrolowania zakładania tych kont. To zapewne wymagać będzie napisania własnego membership providera.
Z drugiej jednak strony z pewnością są metod na obejście problemów. Na przykład mógłbyś pozwolić każdemu użytkownikowi na zakładanie konta. Do tego rozbudować formularz zakładania konta, by użytkownik mógł na tym formularzu zażądać dostępu do interesujących go grup. Konto by się zakładało bez uprawnień, a potem stosowny admin przeglądałby żądania dostępu...
a co do szablonów, fajnie by było gdyby jakiś zalążek był a rzeczywiście trzeba by było to po prostu rozbudowywać.
widziałem gdzieś na stronie MS opis ACL na .NET 4.0 ale jeszcze się w to nie wgłębiałem. czy membership i acl o którym mówię to nie są bliźniacze projekty?

ha! nie znam acl :D

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Bartosz Rakowski:
Z zakładaniem użytkowników może być więcej komplikacji, zwłaszcza jeśli chcesz mieć mechanizm kontrolowania zakładania tych kont. To zapewne wymagać będzie napisania własnego membership providera.
Z drugiej jednak strony z pewnością są metod na obejście problemów. Na przykład mógłbyś pozwolić każdemu użytkownikowi na zakładanie konta. Do tego rozbudować formularz zakładania konta, by użytkownik mógł na tym formularzu zażądać dostępu do interesujących go grup. Konto by się zakładało bez uprawnień, a potem stosowny admin przeglądałby żądania dostępu...

właśnie tak planuję, że użytkownik założyć sobie konto może na luzie, aktywuje sobie je przez email tylko dopóki odpowiedni group admini go nie zaakceptują do grupy i nie dadzą mu dostępu do grupy to będzie miał jedynie możliwość składania wniosków i tyle.
jeśli chodzi o członkostwo w grupach to chyba już tutaj nie potrzeba mechanizmu membership prawda?
myślałem, żeby zrobić relację n-n, i tabela pośrednicząca:
user_id group_id status
i w statusie jak sobie użytkownik złoży wniosek jest powiedzmy 0, czyli złożone, a system daje mu dostęp do wszelkich future'ów grupy w momencie kiedy status jego członkostwa jest powiedzmy 1.

membership potrzebuję właśnie do dostępu do odpowiednich akcji itp.
dobrze mówię?

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Role przechodzą jako string, zatem jeśli grupa ma jakikolwiek identyfikator, który "pod spodem" możesz z nią kojarzyć, to nawet konieczność kojarzenia ról z grupami może nie zachodzić. Wraz z założeniem grupy #1 można dodać role group#1-admin etc.

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

strasznie to brzmi jak teraz czytam :)
Chodzi o to, że tabela pośrednicząca nie będzie potrzebna.

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Bartosz Rakowski:
strasznie to brzmi jak teraz czytam :)
Chodzi o to, że tabela pośrednicząca nie będzie potrzebna.

możesz wyjasnić bo nie zrozumiałem:)

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

masz userow z loginem i id
masz grupy o podanej nazwie i id
mamy tabelę zawierającą id usera i id grupy, oraz autonumerowanie

teraz można usera dodać do wielu grup

uprawnienia do ficzerów nadajesz grupom, czyli jak chcesz sprawdzić czy user ma uprawnienia do czegoś sprawdzasz czy jest w jakiejś grupie

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Przemysław R.:
masz userow z loginem i id
masz grupy o podanej nazwie i id
mamy tabelę zawierającą id usera i id grupy, oraz autonumerowanie

teraz można usera dodać do wielu grup

uprawnienia do ficzerów nadajesz grupom, czyli jak chcesz sprawdzić czy user ma uprawnienia do czegoś sprawdzasz czy jest w jakiejś grupie

to wiem, tylko Bartek napisał, że tabela pośrednicząca nie jest potrzeba:)

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Możesz dodając grupę o id #1 dodać równocześnie role group#1-admin, group#1-junior-admin etc. Jeśli przypiszesz potem user'a do roli, to się zapamięta.
Z kolei zrobienie tego po swojemu, z tabelami pośrednimi, też niewiele zajmie. Nadpisać trzeba metodę, która pozwala decydować, co danemu użytkownikowi jest dozwolone.Bartosz Rakowski edytował(a) ten post dnia 09.07.10 o godzinie 21:34

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Bartosz Rakowski:
Z kolei zrobienie tego po swojemu, z tabelami pośrednimi, też niewiele zajmie. Nadpisać trzeba metodę, która pozwala decydować, co danemu użytkownikowi jest dozwolone.

tak przyszłościowo - która to metoda:)

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Marek Urbanowicz:
Przemysław R.:
masz userow z loginem i id
masz grupy o podanej nazwie i id
mamy tabelę zawierającą id usera i id grupy, oraz autonumerowanie

teraz można usera dodać do wielu grup

uprawnienia do ficzerów nadajesz grupom, czyli jak chcesz sprawdzić czy user ma uprawnienia do czegoś sprawdzasz czy jest w jakiejś grupie

to wiem, tylko Bartek napisał, że tabela pośrednicząca nie jest potrzeba:)

hmm, tego typu rozwiązanie to swego rodzaju standard
przez odpowiednie modelowanie uprawnieniami grup i zawartością grup można zrobić dowolne rodzaje uprawnień. robienie obiektu zawierający pełen opis uprawnień jest mało elastyczne

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Przemysław R.:
Marek Urbanowicz:
Przemysław R.:
masz userow z loginem i id
masz grupy o podanej nazwie i id
mamy tabelę zawierającą id usera i id grupy, oraz autonumerowanie

teraz można usera dodać do wielu grup

uprawnienia do ficzerów nadajesz grupom, czyli jak chcesz sprawdzić czy user ma uprawnienia do czegoś sprawdzasz czy jest w jakiejś grupie

to wiem, tylko Bartek napisał, że tabela pośrednicząca nie jest potrzeba:)

hmm, tego typu rozwiązanie to swego rodzaju standard
przez odpowiednie modelowanie uprawnieniami grup i zawartością grup można zrobić dowolne rodzaje uprawnień. robienie obiektu zawierający pełen opis uprawnień jest mało elastyczne

mówisz o tym, że rozwiązanie z tabelą pośredniczącą członkostw z autonumerowaniem, user id, group id i status'em jest standardem tak?

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Marek Urbanowicz:
hmm, tego typu rozwiązanie to swego rodzaju standard
przez odpowiednie modelowanie uprawnieniami grup i zawartością grup można zrobić dowolne rodzaje uprawnień. robienie obiektu zawierający pełen opis uprawnień jest mało elastyczne

mówisz o tym, że rozwiązanie z tabelą pośredniczącą członkostw z autonumerowaniem, user id, group id i status'em jest standardem tak?

tak

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

tak przyszłościowo - która to metoda:)

public bool IsUserInRole(string username, string rolename)
;)

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

http://www.asp.net/mvc/tutorials/authenticating-users-...

czy to dobry tutorial o tym?
bo jest fajny i klarowny i zaczyna mi się podobać coraz bardziej ta technologia:)

konto usunięte

Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0

Marek Urbanowicz:
http://www.asp.net/mvc/tutorials/authenticating-users-...

czy to dobry tutorial o tym?
bo jest fajny i klarowny i zaczyna mi się podobać coraz bardziej ta technologia:)

Tak, w moim linku wyżej też jest wszystko wyjaśnione :)Sebastian Olszewski edytował(a) ten post dnia 11.07.10 o godzinie 15:49



Wyślij zaproszenie do