Witam, jestem absolutnym laikiem jeżeli chodzi o ASP.NET MVC (uczę się intensywnie dopiero od tygodnia), aktualnie tworzę prosty sklep internetowy. Mam własną bazę, wrzuconą na SQL Server i podłączoną do projektu, problem pojawia się gdy rejestruję nowego użytkownika (przez email i hasło), nie jest on po prostu dodawany do bazy i teraz moje pytanie, po pierwsze, gdzie owy użytkownik ląduje? (podejrzewam,że w bazie,którą tworzy MVC na Default Connection jednak nie mam do niej dostępu bo nie posiadam servera localDB) a po drugie jak połączyć swoją bazę z rejestracją nowego użytkownika? Czy pola w tabelach muszą odpowiadać tym,które mapują owego usera w bazie MVC? Nie mam żadnej koncepcji jak to rozwiązać dlatego proszę o jakieś sugestie,pozdrawiam.
Musisz zaimplementować własny MembershipProvider, podrzucam artykuł:
http://patryknet.blogspot.com/2011/05/wasna-implementacja-membershipprovider.html
http://www.codeproject.com/Articles/578374/AplusBeginner-splusTutorialplusonplusCustomplusF
Edit:
nawet na forum już był poruszany temat: https://4programmers.net/Forum/C_i_.NET/121861-wlasne_uwierzytelnianie_w_aspnet_mvc_3_razor
MembershipProvider
to dość stare rozwiązanie, od paru wersji MVC używa się innych mechanizmów. Trzeba raczej czytać o ASP.NET Identity i Simple Membership Provider.
Hej, mam pytanie odnośnie właśnie własnej autoryzacji, chodzi mi o to jak to rozwiązać w połączeniu z bazką. Na bazie przechowywałbym login oraz hasło, (jak je zahaszować?) i odkodowywałbym je po stronie aplikacji? Kompletnie nie wiem jak się za takie coś zabrać :/
Hasło haszuj jakimś algorytmem haszującym. A po stronie aplikacji niczego nie odhaszowujesz (bo i tak się nie da), ale liczysz hasz hasła wpisanego przez użytkownika i sprawdzasz, czy jest taki sam, jak hasz hasła zapisanego w bazie.
Do przechowania haszu używać varchara?
Raczej chara, hashe mają raczej stałą długość, jeśli używa się zawsze jednego algorytmu.
Mając tabelę z loginem, zahaszowanym hasłem, oraz intem reprezentującym role, i przy stworzonej już aplikacji w MVC jak mogę najmniej boleśnie dodać jakąś autoryzację?
Np. tak: http://stackoverflow.com/a/10524305/4236533
Tylko tam, gdzie w przykładzie jest Membership.ValidateUser
wołasz jakąś swoją normalną klasę, a nie MembershipProvidera.