• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaki typ danych na pole "hasło" w c#

Object Storage Arubacloud
+1 głos
127 wizyt
pytanie zadane 14 kwietnia 2021 w C# przez Jacuchna0 Użytkownik (640 p.)

Witam

Właśnie tworzę swoją pierwszą aplikacje w .necie która pozwoli na logowanie użytkowników, ale nie mogę nigdzie znaleźć jaki typ danych zdefiniować dla pola password. Znalazłem coś takiego, ale prosiłbym o potwierdzenie czy się nada: SecureString , czy może jakaś funkcja hashująca, jeśli tak to jaka?

1
komentarz 14 kwietnia 2021 przez adrian17 Ekspert (344,860 p.)
Ale nie powiedziałeś za bardzo w jakim kontekście chcesz mieć to "pole" na hasło. Masz na myśli formularz w Forms, WPF, ASP? Czy może w bazie danych w Entity Framework?
komentarz 14 kwietnia 2021 przez Jacuchna0 Użytkownik (640 p.)
Mój błąd przepraszam. A więc tworzę apkę z wykorzystaniem asp, i mam model "User", który entity wrzuci do bazy. Formularz rejestracji użytkownika będzie tworzył ten obiekt i wysyłał do bazy.
1
komentarz 14 kwietnia 2021 przez adrian17 Ekspert (344,860 p.)
ASP.NET nie ma wbudowanych narzędzi i modeli do zarządzania kontami użytkowników?

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-5.0

Nawet jeśli naprawdę chcesz to robić samemu, to haseł w ogóle w modelu się nie przechowuje, tylko ich hashe. Podobnie pole w formularzu też chyba powinno mieć dostępny typ Password (nie znam ASP.NET tak dobrze)? W każdym razie sam fakt skomplikowania tego jest dobrym powodem by użyć gotowych narzędzi do zarządzania logowaniem.
komentarz 14 kwietnia 2021 przez Jacuchna0 Użytkownik (640 p.)
A orientujesz się czy inny framework wspiera logowanie itp?
komentarz 14 kwietnia 2021 przez adrian17 Ekspert (344,860 p.)
Inny framework, to znaczy?

1 odpowiedź

+2 głosów
odpowiedź 14 kwietnia 2021 przez kukulim Mądrala (6,440 p.)
wybrane 14 kwietnia 2021 przez Jacuchna0
 
Najlepsza

Cześć,

masz takiego Nugetta : BCrypt.Net-Next

jak rejestrujesz nowego użytkownika :

using BC = BCrypt.Net.BCrypt;

public async Task RegisterAsync(RegisterRequest request)
        {

                var newUser = new User
                {
                    UserName = request.UserName,
                    Password = BC.HashPassword(request.Password)
                };
                await userServices.CreateAsync(newUser);
}

 

i ten nuget haszuje ci hasło, tak ze w bazie danych jest zaszyfrowane.

Później przy logowaniu sprawdzasz czy haslo jest poprawne tak:

using BC = BCrypt.Net.BCrypt;
  
public async Task<LoginResult> AuthenticateAsync(LoginRequest request)
        {

            var CurrentUser = await userServices.GetUserByEmailAsync(request.Email);

            if (CurrentUser == null)
            {
                throw new Exception($"User with {request.Email} not found.");
            }

            if (!BC.Verify(request.Password, CurrentUser.Password))
            {
                throw new Exception($"Credentials for '{request.Email} aren't valid'.");
            }

            return (new LoginResult
            {
                UserId = CurrentUser.Id
            });
}
komentarz 14 kwietnia 2021 przez Jacuchna0 Użytkownik (640 p.)
Wielkie dzięki za pomoc przyjrzę się temu :)

Podobne pytania

+1 głos
2 odpowiedzi 641 wizyt
pytanie zadane 6 czerwca 2015 w C# przez Surykat Stary wyjadacz (14,780 p.)
+1 głos
2 odpowiedzi 924 wizyt
pytanie zadane 9 kwietnia 2021 w C# przez kubaa322 Użytkownik (710 p.)
0 głosów
2 odpowiedzi 386 wizyt
pytanie zadane 22 lutego 2021 w C# przez disaster Bywalec (2,120 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...