Frage

Ich versuche, einen einfachen Passwort -Validator auszuführen. Ich habe es bereits in JSP geschrieben, und es funktioniert. Ich bin ein Anfänger in C# und ASP.net und möchte üben/lernen, indem ich es in C# schreibe. Als Anfänger habe ich einige Probleme und hoffte auf etwas Hilfe.

Was ich ursprünglich gut gearbeitet hatte. Es ist eine Problemumgehung, die eine schlechte Praxis ist - aber gut zum Lernen von Java und JSP. Es verwendet nur einen Pop -Server als Problemumgehung, um die Benutzerauthentifizierung zu machen - albern, aber gut zu lernen!

Was ich im Moment habe, ist diese Klasse, von der ich glaube, dass sie in einer .aspx -Datei gespeichert werden sollte, die mein Formular als "Aktion" verwendet.

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;
    }
}

Daher stehe ich mit dem Host eine Verbindung, um den Benutzernamen und das Passwort zu speichern, und überprüfe gegen dieses Formular:

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

Was ich frage, ist:

Ist das "Form" meines Codes korrekt? Ist es korrekt, mein C# in einer ASPX -Datei zu speichern und nach Bedarf auszuführen, wenn der Benutzer versucht, sich anzumelden? Ich kann keine Informationen dazu finden und gehe davon aus, dass ich eine Struktur wie JSP benötige, in der Sie ausführen würden:

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

Wie speichern Sie Sitzungsdaten, so dass die "Anmeldeseite" angezeigt wird und der Benutzer dauerhaft angemeldet ist und nicht nur auf einen Link gebracht und dann vergessen wird?

War es hilfreich?

Lösung

Es gibt zwei verschiedene Ansätze zur Codierung von ASP.NET, Webformen und MVC. Mit ASP.NET-Webformularen, die Sie verwenden, können Sie Code im .aspx ausführen. Normalerweise wird Code in einer Code-Behind platziert, die für die verwendete Sprache benannt wird, dh .aspx.cs oder .aspx .VB.

Die Code-Behind enthält eine Klasse, die der Seite zugeordnet ist. Diese Klasse enthält Ereignisse, die der Ladeseite, Schaltflächenklicks usw. entsprechen. <asp:Label runat="server" ID="MyLabel" Text="My label text"/>. Etiketten und andere Elemente können dann durch ihre IDs im Code-Behind bezeichnet werden, dh MyLabel.Text = "My different label text";.

ASP.NET verfolgt eine Sammlung namens namens Sitzung in dem Sie Informationen speichern können, die für die Dauer der Benutzersitzung bestehen bleiben.

Ich sollte jedoch darauf hinweisen, dass ASP.NET ein Sicherheitsmodell hat, das auf Anbietern basiert und Login -Steuerelemente Das ist integriert und bietet viel mehr Kontrolle über das Sicherheitsverhalten als den Ansatz, den Sie hier verfolgen. Sie sollten das sehen Walkthrough: Erstellen einer ASP.NET -Website mit grundlegender Benutzeranmeldung auf msdn.

Ich würde auch sehr empfehlen, es zu bekommen Visual Studio Wenn Sie es nicht schon haben. Es gibt zeitlich begrenzte Testausgaben des vollständigen Produkts. Es gibt auch kostenlose Versionen mit einem geringeren Feature -Set namens namens Äußern Ausgaben.

Viel Glück und ich hoffe, Sie lernen das gerne.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top