14 messaggi dal 09 settembre 2010
Buon giorno,

ho creato una progetto nuovo con visual studio 2015 mi servirebbe avere l'autenticazione con il login che impedisca agli utenti non autenticati l'apertura di altre pagine se no quella per utenticarsi.

Il progetto base giustamente non funziona, ho provato varie soluzioni trovate su internet, ma nessuna funziona. Cosa serve per fare funzionare il tutto? Tra i link visitati ci sono anche quelli microsoft ma non ho trovato nulla che mi abbia fatto capire dove sblaglio.

Chiedo se qualcuno ha qualche consiglio in relazione a documentazione da leggere per capire come funziona e come realizzare la cosa.

Ringrazio sin d'ora.

Chiedo solo una cortesia ad un eventuale moderatore, se il posto in cui ho scritto è sbagliato, oppure la domanda è troppo elementare o troppo generica o comunque non attinente, prego tale moderatore di dirmelo. Insomma se il forum è solo specificatamente per professionisti mi scuso e non disturberò più. Vi prego di non leggere la cosa come polemica non lo vuole essere, capisco che se si pongono domande in un contesto sbagliato si fa perdere tempo e la cosa non è nelle mie intezioni. Questo lo scrivo perché ho già fatto una domanda 5 mesi fa a cui nessuno ha risposto, se questo è accaduto perché la mia domanda era fuori luogo mi scuso non era mia intezione fare perdere tempo a nessuno.

Di nuovo buon lavoro a tutti
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao thule, nessun problema, non c'è niente di sbagliato nel tuo post. Cerchiamo di aiutare tutti, per qualsiasi tipo di domanda che riguardi il tema del forum, comprese le domande elementari come "A cosa serve C#?".

Se a volte non ricevi risposta è perché la domanda presuppone un certo investimento di tempo. Qui tutti noi diamo un contributo volontario e non retribuito, compatibilmente con altri impegni e con il tempo libero che abbiamo a disposizione. Per fare un esempio: nel mio caso, se ho solo mezz'ora di tempo, preferisco investirla per rispondere a 3 domande di facile risoluzione piuttosto che ad una complessa. Bisogna fare triage, non c'è altro modo.


il triage è funzionale a far sì che tutto l'impianto del soccorso funzioni efficientemente per salvare il maggior numero di persone, dovendo a volte scegliere di dirigere le cure solo verso chi, soccorso prontamente, ha più probabilità di sopravvivere.


Ora, veniamo alla tua domanda.

Cosa serve per fare funzionare il tutto?

Dipende. Siccome non so qual è la situazione di partenza, non posso sapere cosa funzionerà meglio nel tuo caso. Ci sono varie tecnologie di autenticazione e autorizzazione in ASP.NET e non posso sapere verso quale indirizzarti se non conosco il tuo scenario.

In generale, ti consiglierei di creare un nuovo progetto a partire dal template WebForms o MVC e di selezionare "Account utente individuali", come vedi in questa immagine.
Visual Studio ti creerà una soluzione sicuramente funzionamente e basata su ASP.NET Identity, una tecnologia di autenticazione e autorizzazione moderna che Microsoft propone per i nuovi progetti. Trovi degli articoli introduttivo qui:
http://www.aspitalia.com/articoli/asp.net4.5.1/introduzione-asp.net-identity.aspx
http://www.aspitalia.com/articoli/asp.net4.5.1/security-asp.net-mvc-identity.aspx

E vari altri script qui:
http://www.aspitalia.com/ricerca/super.aspx?key=asp.net+identity

ASP.NET Identity usa Entity Framework per leggere/scrivere verso un database, quindi dovresti prima formarti su queste tecnologie per poter adattare il progetto al tuo caso.

Spiega in che situazione ti trovi e vediamo se questa soluzione può essere idonea.

ciao,
Moreno
Modificato da BrightSoul il 22 febbraio 2018 18.28 -

Enjoy learning and just keep making
14 messaggi dal 09 settembre 2010
Ciao Moreno,

premetto che sono contento di essere stato correttamente interpretato nella mia volontà di non fare polemica. Di mio sono sempre grato a chi decide di condividere il proprio tempo con me, cosa questa che in qualsiasi contesto non è dovuta e che dovrebbe stupirci sempre visto che è un dono. Che dire grazie, oltre che la politica è sicuramente la più logica ed efficace. Ci tengo solo a dire che sono dispiaciuto di non averci pensato.

Ho seguito il consiglio, ho creato un nuovo progetto dove tutto era già configurato e ho visto quello che serve per replicarlo nella mia applicazione. Il problema è che in realtà non funziona, ossia abbiamo tutto affinché funzioni ma giustamente devi fare tu delle cose per attivare il tutto.

Quindi dagli articoli che mi hai segnalato ho capito come funziona anche se il mio caso è più "antico", ossia un'applicazione con webform mentre negli articoli si parla di MVC (cosa più che sacrosanta visto che sarebbe sicuramente meglio usare il nuovo metodo più efficente e strutturato).

Sono comunque riuscito a fare funzionare la cosa, mi sembra semplice una volta capita. Volevo chiederti un parere sulla soluzione (sempre, in base alla premessa fatta sul tempo a disposizione, ossia se la cosa è coerente con tale tempo).

il primo problema è che la soluzione pronta non evita che l'utente non autenticato giri per le pagine dell'applicazione allora in una classe "base" (da cui le altre pagine ereditano così non lo scrivo in tutte le pagine dell'applicazione) ho messo nel load un controllo su User.Identity.IsAuthenticated che se è false redireziona sul login.

Circa la sicurezza della password, credo che sia visibile visto che siamo su http, dovrò pensare di mettere tutto su https anche se non l'ho mai fatto mi informerò e vedrò se è alla mia portata.

Mi manca il blocco degli user ma ho visto che tra i link segnaliti se ne parla.

Ho invece una domanda, sul check ricordami, dovrebbe usare i cookeis se non sbaglio. Di deafult sono in chiaro? se si è complesso impostare che non lo siano? Gli ariticoli che ho trovato sono "antichi" se me ne puoi indicare qualcuno me lo leggo.

Grazie di nuovo, e buona giornata o serata.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


ho messo nel load un controllo su User.Identity.IsAuthenticated che se è false redireziona sul login.

Ok, questo sicuramente funziona ma non è il modo ideale di farlo. Con ASP.NET WebForms puoi bloccare l'accesso agli utenti anonimi agendo sul nodo <authorization> del web.config.
Trovi un esempio di codice qui:
https://support.microsoft.com/en-us/help/316871/how-to-control-authorization-permissions-in-an-asp-net-application
Nota come in quell'esempio di web.config, ci siano dei nodi <location> che ti permettono di ridefinire i nodi <authorization> per determinate pagine e sottodirectory. In questo modo hai la libertà di comporre le tue politiche di autorizzazione in maniera precisa.


Circa la sicurezza della password, credo che sia visibile visto che siamo su http, dovrò pensare di mettere tutto su https anche se non l'ho mai fatto mi informerò e vedrò se è alla mia portata.

Sì, se stai preparando un sito web ti consiglio fortemente di installare un certificato SSL per far navigare i tuoi utenti su connessione sicura HTTPS. Lo puoi ottenere gratuitamente usando Let's Encrypt. Segui questa guida a partire dal paragrafo "Richiesta di un certificato Let?s Encrypt tramite client ACME".
https://www.ictpower.it/guide/implementazione-di-lets-encrypt-in-ambiente-windows-server-2016.htm


usare i cookeis se non sbaglio. Di deafult sono in chiaro?

I cookie emessi da ASP.NET Identity sono assolutamente cifrati, altrimenti un utente potrebbe manipolarli per fingersi qualcun altro. Stessa cosa per i cookie emessi dal vecchio meccanismo di autenticazione (FormsAuthentication).

Quindi hai deciso di usare ASP.NET Identity? Visual Studio 2015/2017 ha un template anche per ASP.NET WebForms. Infatti ASP.NET Identity funziona sia per MVC che per WebForms.
Se vuoi installare ASP.NET Identity in un progetto già esistente, segui questo bel tutorial.
https://docs.microsoft.com/en-US/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project
Tieni sempre presente che per bloccare l'accesso agli utenti anonimi devi usare i nodi <authorization> nel web.config.


ciao,
Moreno

Enjoy learning and just keep making
14 messaggi dal 09 settembre 2010
Ciao Moreno,

grazie tante, proverò a questo punto mi documento meglio su tutto.

Di nuovo ti ringrazio per la condivisione.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ok, se incontri ostacoli fammi sapere

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.