Question

Je suis en train de lancer un mot de passe simple, validateur. Je l'ai déjà écrit dans JSP, et il fonctionne. Je suis un débutant en C # et ASP.NET, et je souhaite à la pratique / apprendre en l'écrivant en C #. En tant que débutant, je me présente quelques problèmes et espérais un peu d'aide.

Ce que j'avais initialement bien fonctionné. Il est une solution de contournement qui est mauvaise pratique - mais bon pour l'apprentissage Java et JSP. Il est juste en utilisant un serveur POP comme une solution de contournement pour effectuer une authentification utilisateur - stupide, mais bien d'apprendre

Ce que j'ai en ce moment est cette classe, que je crois devrait fonctionner, stocké dans un fichier .aspx qui ma forme utilise comme « action ».

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

Alors je me connecte à l'hôte stocker le nom d'utilisateur et mot de passe et de vérifier contre cette forme:

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

Ce que je me demande est:

est la « forme » de mon code correct - est-il exact de stocker mon C # dans un fichier ASPX et l'exécuter au besoin lorsque les tentatives d'utilisateur de se connecter? Je ne trouve aucune information à ce sujet et je suppose que je besoin d'une structure comme JSP où vous courriez:

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

Comment les données stockez-vous de la session si une fois l'utilisateur authentifié, la « page de connexion » est affiché et l'utilisateur est en permanence connecté plutôt que porté à un lien, puis oublié?

Était-ce utile?

La solution

Il y a deux diifferent approches de codage ASP.NET, Web Forms et MVC . Avec ASP.NET Web Forms, qui est ce que vous utilisez, vous pouvez faire du code dans le .aspx, cependant, le code général est placé dans un code-behind du nom de la langue utilisée, à savoir .aspx.cs ou .aspx .vb.

Le code-behind contient une classe associée à la page. Cette classe contient des événements qui correspondent au chargement de la page, les clics de bouton, etc. ASP.NET prend en charge un certain nombre de contrôles intégrés qui sont spécifiés à l'aide d'un asp: préfixe, à savoir <asp:Label runat="server" ID="MyLabel" Text="My label text"/>. Les étiquettes et les autres éléments peuvent alors être désignés par leurs numéros d'identification dans le code sous-jacent, à savoir MyLabel.Text = "My different label text";.

ASP.NET suports une collection appelée session dans laquelle vous pouvez stocker des informations qui persiste pendant toute la durée de la session de l'utilisateur.

Je tiens à souligner que si ASP.NET a un modèle de sécurité basé sur les fournisseurs et les contrôles de connexion qui est intégré et offre beaucoup plus de contrôle sur le comportement de sécurité que l'approche que vous prenez ici. Vous devriez voir le Walkthrough: Création d'un site Web ASP.NET avec base utilisateur Connexion sur MSDN.

Je recommande fortement d'obtenir également Visual Studio si vous ne l'avez pas déjà. Il y a des éditions d'essai limitées dans le temps du produit complet disponible. Il y a aussi des versions gratuites avec une moindre jeu de fonctionnalité appelée les éditions Express.

Bonne chance et j'espère que vous aimez apprendre cela.

scroll top