Domanda

Sto cercando di eseguire un semplice validatore della password. L'ho già scritto in JSP e funziona. Sono un principiante in C# e ASP.NET e desidero esercitarsi/imparare scrivendolo in C#. Come principiante, sto affrontando alcuni problemi e speravo in qualche aiuto.

Quello che inizialmente avevo funzionato bene. È una soluzione alternativa che è una cattiva pratica, ma è utile per imparare Java e JSP. Sta solo usando un server pop come soluzione alternativa per fare l'autenticazione dell'utente - sciocco, ma è bello da imparare!

Quello che ho al momento è questa classe, che credo dovrebbe funzionare, memorizzata in un file .aspx che la mia forma utilizza come "azione".

class POPServer
{
    static Boolean hasLogin(string username, string password)
    {
        const bool isValid;
        using (var client = new TcpClient("host.hosty.com", 110))
        using (var stream = client.GetStream())
        using (var reader = new StreamReader(stream))
        using (var writer = new StreamWriter(stream))
        {
            writer.WriteLine("USER " + username );
            writer.WriteLine("PASS " + password );
            const string response = reader.ReadLine();
            isValid = response[ 0 ] == '+';
            writer.WriteLine("quit\n");
        }
        return isValid;
    }
}

Quindi mi connetto all'host che memorizza il nome utente e la password e verificano contro questo modulo:

<form action="POPServer.aspx" method="post">
  <fieldset>
    <legend>Login Form</legend>
    <label for="teachername">Username:
      <input type="text" name="teachername" id="teachername" value="" />
    </label>
    <label for="teacherpass">Password:
      <input type="password" name="teacherpass" id="teacherpass" value="" />
    </label>
    <label for="teacherremember">
      <input class="checkbox" type="checkbox" name="teacherremember" id="teacherremember" checked="checked" />
      Remember me</label>
    <p>
      <input type="submit" name="teacherlogin" id="teacherlogin" value="Login" />
      &nbsp;
      <input type="reset" name="teacherreset" id="teacherreset" value="Reset" />
    </p>
  </fieldset>
</form>

Quello che mi chiedo è:

Il "modulo" del mio codice è corretto: è corretto archiviare il mio C# in un file ASPX ed eseguirlo come richiesto quando l'utente tenta di accedere? Non riesco a trovare alcuna informazione su questo e presumo di aver bisogno di una struttura come JSP in cui eseguiresti:

if ( request.hasParameter( "Submit" ) )
{
    if ( POPServer.hasLogin( request.getParameter( "username" ), request.getParameter( "username" ) ) ) {
        response.location( "loginPage.aspx" );
    }
}

Come si memorizzano i dati di sessione, quindi dopo che l'utente è stato autenticato, viene visualizzata la "pagina di accesso" e l'utente viene effettuato l'accesso in modo permanente anziché semplicemente portato su un link e poi dimenticato?

È stato utile?

Soluzione

Esistono due approcci diversi alla codifica ASP.NET, Forme web e MVC. Con i moduli Web ASP.NET, che è quello che stai utilizzando, puoi fare il codice in .aspx, tuttavia, di solito il codice viene posizionato in un codice in cui si usa per la lingua usata, cioè .aspx.cs o .aspx .vb.

Il codice di codice contiene una classe associata alla pagina. Questa classe contiene eventi che corrispondono al caricamento della pagina, clic sul pulsante, ecc. ASP.NET supporta un numero di controlli integrati specificati utilizzando un ASP: prefisso, IE <asp:Label runat="server" ID="MyLabel" Text="My label text"/>. Le etichette e altri elementi possono quindi essere indicati dai loro ID nel codice di codice, cioè MyLabel.Text = "My different label text";.

ASP.NET SUPPORTS Una raccolta chiamata Sessione in cui è possibile archiviare informazioni che persiste per la durata della sessione dell'utente.

Dovrei sottolineare però che ASP.NET ha un modello di sicurezza basato sui provider e Controlli di accesso Questo è integrato e fornisce molto più controllo sul comportamento di sicurezza rispetto all'approccio che stai adottando qui. Dovresti vedere il Walkthrough: creazione di un sito Web ASP.NET con accesso all'utente di base su msdn.

Consiglio vivamente anche di ottenere Visual Studio Se non ce l'hai già. Ci sono edizioni di prova limitate a tempo dell'intero prodotto disponibili. Ci sono anche versioni gratuite con un set di funzionalità minori chiamato Esprimere edizioni.

Buona fortuna e spero che ti piaccia imparare questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top