[c#] Uwierzytelnianie w aplikacjach

0

Witam

Moje załorzenia są takie:
Mam 3 moduły programu (Admin, Pracownik, Klient - tu spróbuję się z ASP)
Główne okno programu jest odblokowane (Enabled = true) po pomyślnym zalogowaniu inaczej program się zamyka. Program przy pierwszym uruchomieniu pyta o host bazy oraz hasło. Odpowiednia funkcja (tylko u admina) tworzy bazę oraz odpowiednie tabele. Gdzie umieścić wartości host i hasło, żeby to było chodź troche bezpieczne :) ?? Mam kilka koncepcji, mianowicie:

  • do rejestru z tym;
  • plik tekstowy i jakoś zmienić mu prawa dostępu;
  • uŻyć biblioteki Win32.Cryptography, czy jakoś tak;
  • dać to na stałe w programie;
    Jak rozwiąże ten problem wtedy pomyślę o zasadzie uwierzytelniania użytkownika. na razie wyglądało by to tak, że program przy próbie logowania łączy się z bazą danych i tam sprawdza, czy użytkownik taki i taki może korzystać z programu. Gdy pomyślę o tym rozwiązaniu i o tym co się stanie po dostaniu się do bazy danych to widzę, że to bez sensu, ale brak mi pomysłu jak to zrealizować. :(

Moduł klienta... nie lubie webmasteringu, ale wydaje mi się, że klientowi będę musiał tworzyć sesje po pomyślnym zalogowaniu prawda ?? Jeśli się mylę to przepraszam. Proszę również o jakieś rady co do uwierzytelniania klienta w ASP.NET

Pozdrawiam

PS. Wszelkie linki artykuły tutoriale mile widziane. W językach ang, polski. Choć głównie zależy mi na polskich... lepiej ogarne :D

0

Login może być i jawny, a hasło trzymaj tylko w postaci skrótu md5/sha1. Jeśli w skrócie będziesz trzymał nie skrót z hasła, ale na przykład skrót z login+hasło, sam login też będzie bezpieczny.

Oczywiście możesz trzymać to w bazie danych.

0

http://www.codeguru.pl/article-408.aspx

http://developers.pl/forums/thread/7585.aspx

http://www.codeguru.pl/article-702.aspx

http://download.4programmers.net/Szyfrowanie

Na forum 4programmers temat szyfrowania jest poruszany. Czy nie lepszy będzie AES ?? Jakie są zalety wykorzystania md5 ?? Czy md5 przy uwierzytelnianiu, będę mógł szybko odszyfrować i porównać (na tyle,żeby użytkownik nie miał powodów do marudzenia) ??
http://4programmers.net/Forum/viewtopic.php?id=51106&start=0 Mogę poprosić o przykładowy kod generujący MD5 ??

0

MD5 to nie szyfr a funkcja skrotu. Czyli nie mozesz odszyfrowac, ale mozesz porownac czy z podanego hasla wyszedl ten sam hash, co hash zapisany w bazie. Tym sposobem nikt nie zna zapisanego hasla, nawet administrator majacy dostep fizycznie do serwera, itp.

Co do kodu, to klasa MD5, metody Create (statyczna) i ComputeHash.
Oprocz tego jesli chcesz AESa (czyli szyfrowanie symetryczne - tym samym kluczem) to klasa Rijndael (inna nazwa AES) i metody Create oraz CreateDecryptor/Encyptor oraz klasa CryptoStream :)
Odpowiednie przyklady mozesz znalezc na msdn.

0

no tak to funkcja :) z tego wynika, że problem dwóch modułów mam rozwiązany. Teraz muszę poszukać czegoś o uwierzytelnianiu w ASP. Szukam jakiegoś tutoriala, ale na razie zajmę się tymi dwoma. ASP.NET zostawię na później. Aczkolwiek rady co do logowania w ASP, tutoriale czy coś chętnie zobaczę. W tej chwili mam coś na później z tych stron:
http://4programmers.net/Forum/325272?h=logowanie#id325272
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/login/login.aspx

Dzięki za zainteresowanie i pomoc.

0

Wiesz, uwierzytelnianie w sieci to akurat najlatwiejsza czesc. Trzymasz skrot md5 w bazie, ktos wpisuje w textboxa 'proponowane' haslo, przejmujesz, tworzysz skrot, porownujesz, jak pasuje to zapisujesz w sesji, ze zalogowany, jak nie to wypisujesz blad/odswiezasz strone z komunikatem/czy co tam chcesz. I juz. Jest w asp.net kontrolka do obslugi logowania, ale nie mialem okazji z niej korzystac.

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