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.
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.
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?
New->Project->Other project types->Setup and deployment
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
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. ;)
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.
Dzięki za pomoc. Nie mam już czasu na przeprojektowanie mam około 43 różnych okien więc zabieram się za kodowanie :)
I powstanie kolejna praca inżynierska, która ma niewiele wspólnego z inżynierią.