Kontrola dostępu i wdrożenie

0

Witam. Jestem w trakcie pisania projektu na prace inzynierską i mam problem.
Projekt jest już w 90 procentach gotowy pozostaly mi tylko zabezpieczenia. Mam z nimi problen mianowicie zastanawiam się jak sie do tego zabrać. W projekcie będę mial okolo 10 typow dostepu.
Np. Admin - dostęp do wszystkiego
Zao - dostęp do wystawiania dok i edycji tylko swoich
ZaoAd dostęp do wystawiania dok i edycji wszystkich
Itp.
Aplikacja windows form. Uwierzytelnianie będzie bez hasla. Pobierze mi enviroment.username i sprawdz w bazie danych poziom uprawnien tego uzytkownika.
Uprawnienia te będą w tabeli słownikowej i beda przypisywane odpowiednim uzytkownikom z tabeli user-tab.
Czy takie rozwiazanie będzie ok? Wiem że wiąże się to z wprowadzenien wielu warunków w kodzie. Typu if (uprawnienie = 1) i opisanie wszystkiego co moze w danym oknie, blokowanie przyciskow, chowanie przycisków typowo tylko dla admina itd itp.
Czy robi sie to inaczej czy cos w tym stylu co napisałem?
Druga sprawą jest to, że musze przetestować ten program na "firmie" mam okolo 5 komputerów jedeb to serwer reszta połączona przez AD.
Musze jakos ten program wrzucic na serwer i skopiować je na stacje robocze. Nigdy nie uruchamialem aplikacji na innym komputerze. Gdzie wrzucic baze danych i w jakim pliku. Jak wtedy ustawic connection stringa i jak wziac caly program z baza danych aby mozna bylo pracować na wszystkich tych 4 stacjach jednocześnie.
Z góry dzięki za pomoc.

0
Biały Krawiec napisał(a):

Czy takie rozwiazanie będzie ok? Wiem że wiąże się to z wprowadzenien wielu warunków w kodzie. Typu if (uprawnienie = 1) i opisanie wszystkiego co moze w danym oknie, blokowanie przyciskow, chowanie przycisków typowo tylko dla admina itd itp.
Czy robi sie to inaczej czy cos w tym stylu co napisałem?

Użyłeś jakiegoś wzorca projektowego czy cały kod masz w code behind okienek?
Jeśli masz normalną architekturę, to sterowanie tymi uprawnieniami możesz zawrzeć w prezenterach. I może nawet ify nie będą potrzebne.

Musze jakos ten program wrzucic na serwer i skopiować je na stacje robocze. Nigdy nie uruchamialem aplikacji na innym komputerze. Gdzie wrzucic baze danych i w jakim pliku. Jak wtedy ustawic connection stringa i jak wziac caly program z baza danych aby mozna bylo pracować na wszystkich tych 4 stacjach jednocześnie.

Na komputerach instalujesz program, a bazę danych umieszczasz na serwerze bazy danych.

0

Wszystko mam napisane z ręki:) Aplikacja w Windows Form żadnego wzorca projektowego wszystko ręcznie rzeźbione.
Ps. jak zrobić instalkę z programu C# windows form?

0

New->Project->Other project types->Setup and deployment

0

A gdzie te prezentery? i jak wrzucić tam te uprawnienia ?
Czy na każdej windowsform_load dawać if(uprawnienie = 1) to button1.visible = false itd itp.
Z góry dzięki

0
Biały Krawiec napisał(a):

A gdzie te prezentery? i jak wrzucić tam te uprawnienia ?

Jak byś używał wzorca MVP to byś miał prezentery: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter

Biały Krawiec napisał(a):

Czy na każdej windowsform_load dawać if(uprawnienie = 1) to button1.visible = false itd itp.

Skoro już masz 90% aplikacji wszystko w code behind i nie masz chęci pisać od nowa wszystkiego to nie masz innego wyjścia jak wszędzie dawać drabinki ifów.
Powodzenia. ;)

0
Biały Krawiec napisał(a):

A gdzie te prezentery? i jak wrzucić tam te uprawnienia ?

Prezentery masz gdy stosujesz wzorzec MVP, w którym możesz łatwo odseparować sobie logikę prezentacji (czyli także włączanie/ukrywanie przycisków) od kodu formatek/kontrolek.

Czy na każdej windowsform_load dawać if(uprawnienie = 1) to button1.visible = false itd itp.

No skoro masz tylko formy, to nie masz wyjścia. Chyba, że to przeprojektujesz i zrobisz zgodnie z zasadami inżynierii oprogramowania.

0

Dzięki za pomoc. Nie mam już czasu na przeprojektowanie mam około 43 różnych okien więc zabieram się za kodowanie :)

3

I powstanie kolejna praca inżynierska, która ma niewiele wspólnego z inżynierią.

1 użytkowników online, w tym zalogowanych: 0, gości: 1