• 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#

VPS Starter Arubacloud
+1 głos
117 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,100 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,100 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,100 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 620 wizyt
pytanie zadane 6 czerwca 2015 w C# przez Surykat Stary wyjadacz (14,760 p.)
+1 głos
2 odpowiedzi 864 wizyt
pytanie zadane 9 kwietnia 2021 w C# przez kubaa322 Użytkownik (710 p.)
0 głosów
2 odpowiedzi 359 wizyt
pytanie zadane 22 lutego 2021 w C# przez disaster Bywalec (2,120 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...