Tworzę aplikację Windows Forms w któej chce umiescic logowanie uzytkownika. Obsuługę logowania chciałbym zrobić jakims servicem w infrastrukturze. Może mi ktoś doradzić jak to powinno wyglądać. Przy zakładaniu uzytkownika jego login oraz zahaszowane hasło wrzucam do bazy.
Teraz jak uzytkownik bedzie chciał się zalogować do aplikacji to jak to obsłużyć?
Myślałem zeby zrobić to w takiej kolejności
-
użytkownik wpisuje login i hasło
-
sprawdzam czy taki uzytkownik istnieje w bazie, jeśli nie istnieje to wywalam komunikat ze niepoprawne dane logowania
-
jeśli użytkonik istniej to porównuuje hash wpisanego hasła z hasem który jest w bazie. Jak nie pasuje to komunikat
No i właśnie teraz pojawia się problem. Czy jeśli logowanie przebiegło pomyślnie to gdzieś w aplikacji powinienem mieć jakąś zmienną globalną do której wrzucę informację o zalogowanym użytkowniku tak abym mógł je używać w innych częściach aplikacji?
Mam np w service metodę którą używam do logowania(w niej jest obsługa tych trzech punktów któe wczesniej wymieniłem):
public void Login(string name, string password)
Czy ta metoda powinna właśnie tak wyglądać, czy jednak powinna zwracać obiekt klasy User, w którym będą dane zalogowanego użytkonwika?
A jeśli powinna zwracać Usera, to czy ma on być przypisany do zmiennej globalnej, czy jakoś inaczej się to robi, aby była możliwość korzystania z danych tego usera w innych miejscach aplikacji?