MVC è dotato di un ActionFilter Per ottenere l'autenticazione dell'identità in Asp.NET WebForm, Microsoft ci offre tre modi, il più comunemente utilizzato è l'autenticazione del Modulo, che deve essere configurata con le informazioni corrispondenti. Ad esempio, le seguenti informazioni di configurazione:
Significa che la nostra pagina di accesso è Login.aspx, la pagina predefinita dopo il login riuscito è Default.aspx, e le nostre informazioni utente adottano due metodi: verifica e crittografia. E la cosa più importante è che dobbiamo scrivere il metodo di autorizzazione (l'autorizzazione qui sotto deve essere scritta, altrimenti è inutile usare solo l'autenticazione dei moduli e poi impostare gli attributi rilevanti), negare tutti gli utenti anonimi e solo gli utenti lognati possono accedere normalmente. Dopodiché, impostamo il pulsante di accesso per scrivere il nome utente nel cookie (cioè, eseguire FormsAuthentication.SetAuthCookie(name, false); Questo è tutto. 0 In Asp.Net MVC possiamo anche usare l'autenticazione Forms, ma se la fai in WebForm non funzionerà. Ad esempio, configuri le informazioni così:
Hai impostato un accesso nel Login.aspx per attivare il login nell'AccountController per accedere, dove il codice di accesso:
Dopo aver fatto questo, scoprirai che il tuo accesso non verrà eseguito. Qual è il motivo? Perché la stessa impostazione non funziona in MVC? Il motivo è che il meccanismo è diverso, perché hai impostato un metodo di autorizzazione che rende il login inaccessibile. Quindi, come facciamo? In effetti, in Asp.Net MVC abbiamo un modo migliore per fare tutto questo, non abbiamo bisogno di un metodo di autorizzazione, il che significa che le nostre informazioni di configurazione sono così:
Non c'è bisogno di specificare che gli utenti anonimi non possono accedere, ecc. Ovviamente, scoprirai che solo fare questo non basta, ma dobbiamo dire al sistema quali devono essere logati per accederli. Forse starai pensando, o()〈))o Oh, è troppo disturbo. Non è così, è molto semplice, dobbiamo solo segnare [Autorizzare] sull'Azione che deve essere autenticata. Ad esempio, ho due pagine nella cartella Home, Index e Home, e voglio che l'Index sia autenticato per l'accesso, ma Home no, quindi devo solo dare all'Index il tag Action [Authorize], cioè:
Questo permette di accedere a Index dopo l'accesso, mentre Home non è necessario effettuare l'accesso. Se devi autorizzare ruoli, puoi specificare il ruolo quando segni Autorizza (ad esempio [Authorize(Role=Administrators)]), ma devi usare il meccanismo di appartenenza fornito da Microsoft, perché il tuo ruolo non può esistere gratuitamente, ma esiste nel database corrispondente, come ho menzionato in un altro blog. Personalizza l'ActionFilter A volte potresti non riuscire a soddisfare questo tipo di autenticazione, oppure, se senti di non essere abbastanza flessibile, non importa, Asp.Net MVC ti permette di personalizzare il tuo ActionFilter. Ad esempio, ora personalizzo l'autenticazione:
Se è richiesta la gestione degli utenti, definirò i filtri correlati al ruolo:
In effetti, scoprirai che i due attributi sopra elencati sono stati effettivamente risolti dall'Authorized integrato di MVC, e qui vi diciamo principalmente che potete estenderlo se necessario. Bene, per oggi è tutto! Codice sorgente scarica: FormFormsAuthenticationMvc
|