Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Override asp.net identity

    ciao!

    mi hanno chiesto di effettuare una modifica al sistema di autenticazione di un progetto che usa Asp.Net Identity e Entity Framework.

    in pratica:
    • controllo lunghezza non inferiore ad 8 caratteri
    • obbligatoriamente cambiata al primo utilizzo e successivamente ogni 6 mesi
    • deve contenere, almeno 3 caratteri tra numeri, caratteri alfabetici in maiuscolo e minuscolo,

    e caratteri speciali

    • deve essere sempre diversa da almeno le ultime 4 precedentemente utilizzate


    siccome sono a digiuno di questa roba, sapete indirizzarmi su come fare?
    sono tutti controlli custom che devo fare ad esempio in fase di login/registrazione?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,281
    Quote Originariamente inviata da fermat Visualizza il messaggio
    mi hanno chiesto di effettuare una modifica al sistema di autenticazione di un progetto che usa Asp.Net Identity e Entity Framework.
    [...]
    siccome sono a digiuno di questa roba, sapete indirizzarmi su come fare?
    sono tutti controlli custom che devo fare ad esempio in fase di login/registrazione?
    Una ricerchina?

    Vedi ad esempio questo thread su SO.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ciao!

    in verità avevo fatto una ricerca, ma sicuramente ho cercato male non sapendo bene da cosa partire!
    quindi grazie!

    detto ciò:

    • controllo lunghezza non inferiore ad 8 caratteri -> lo posso fare seguendo il link
    • deve contenere, almeno 3 caratteri tra numeri, caratteri alfabetici in maiuscolo e minuscolo, e caratteri speciali -> lo posso fare seguendo il link, ma penso debba usare una regex
    • obbligatoriamente cambiata al primo utilizzo -> da quello che ho capito devo aggiungere un campo sul db per controllare se è stata modificata o no
    • e successivamente ogni 6 mesi -> penso di dover fare una query e verificare quando è stata creata, ed in base a questo fargliela cambiare
    • deve essere sempre diversa da almeno le ultime 4 precedentemente utilizzate -> penso di dover fare una query e verificare che sia diversa dalle ultime 4


    corretto?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,281
    Quote Originariamente inviata da fermat Visualizza il messaggio
    detto ciò:
    [...]
    corretto?
    Non ricordo a memoria quali cose sono gestite direttamente da Identity, ma nella documentazione sono scritte tutte.

    Perdonami ma sono pigro e non ho voglia di leggertele una per una e confermartele puntualmente. Fallo tu.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    Quote Originariamente inviata da fermat Visualizza il messaggio
    deve contenere, almeno 3 caratteri tra numeri, caratteri alfabetici in maiuscolo e minuscolo, e caratteri speciali -> lo posso fare seguendo il link, ma penso debba usare una regex
    il controllo puoi farlo sia lato client che lato server con un regularexpressionvalidator

    Quote Originariamente inviata da fermat Visualizza il messaggio
    obbligatoriamente cambiata al primo utilizzo -> da quello che ho capito devo aggiungere un campo sul db per controllare se è stata modificata o no
    questa cosa io l'ho risolta inserendo una sequenza di x caratteri particolare fissa nella prima pwd generata e comunicata all'utente: se alla login dell'utente viene rilevata la sequenza di caratteri gli do l'accesso e lo ridirigo alla pagina di modifica pwd... questa cosa mi è comoda anche nel caso l'utente dimentichi la pwd perchè quando mi chiede il link per rigenerarla gli aggiorno il record in db inserendogli la sequenza nella pwd e aggiungendo su un altro campo un token di n cifre random. Il link che gli mando via mail ha il token in querystring così quando lo clicca e atterra nella pagina di login verifico attraverso il token a quale utente è agganciato, lo faccio accedere bypassando l'inserimento di user e pwd ma, rilevando la sequenza di caratteri nella pwd, lo reindirizzo automaticamente alla pagina di modifica pwd dove se la rigenera come vuole (e rimuovo il token dal record).
    Dopo la modifica pwd fagli sempre fare il logout e fallo rientrare con le nuove credenziali.

    Quote Originariamente inviata da fermat Visualizza il messaggio
    successivamente ogni 6 mesi -> penso di dover fare una query e verificare quando è stata creata, ed in base a questo fargliela cambiare
    eh ogni volta che fa login ti tocca, naturalmente ti devi salvare la data di ultima modifica nel record dell'utente

    Quote Originariamente inviata da fermat Visualizza il messaggio
    deve essere sempre diversa da almeno le ultime 4 precedentemente utilizzate -> penso di dover fare una query e verificare che sia diversa dalle ultime 4
    si vuol dire che ti devi anche registrare su una tabella separata le password cambiate
    Ultima modifica di supermac; 14-11-2023 a 19:32
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    perfetto, grazie per le dritte!

    appena mi danno i sorgenti mi ci metto e vediamo che esce fuori!

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,856
    per le regular expression probabilmente ci sono resources più potenti, ma io guardavo in questo vecchio sito
    https://regexlib.com/
    Se digiti "password" nel box di ricerca può essere che trovi già pronta la regular expression che fa al caso tuo
    ciao
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    ciao!

    per dovere di cronaca, per il discorso dei caratteri ho usato direttamente la validazione tramite model che già c'era:
    codice:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Text;
    
    
    namespace BCSoft.Clonident.Shared.Model
    {
        public class ChangePasswordRequest
        {
            [Required]
            [StringLength(50)]
            [EmailAddress]
            public string Email { get; set; }
    
    
            [Required]
            [StringLength(16, ErrorMessage = "{0} Lunghezza minima tra {2} e {1}.", MinimumLength = 8)]
            [RegularExpression(@"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{8,16}$", ErrorMessage = "........")]
            public string Password { get; set; }
    
    
            [Required]
            [Compare(nameof(Password), ErrorMessage = "Password non corrispondente")]
            public string ConfirmPassword { get; set; }
    
    
            public string Code { get; set; }
        }
    }
    il resto lo devo ancora implementare!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.