IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Sécurisation d'un site/application C#/ASP.net


Sujet :

ASP.NET

  1. #21
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Vivi, c'est ce que j'allais faire une fois que j'aurais réussi à faire ce que je voulais.

    Hé bien maintenant, effectivement je peux mettre le tag 'Résolu'.

    Encore un grand merci à vous tous !!!
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  2. #22
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Je suis désolée de rouvrir ce topic, mais mon code fonctionnait bien vendredi dernier, mais aujourd'hui lorsque j'ai voulut réessayer et bien cela ne me faisait plus rien........

    Autrement dit lorsque j'appelle ma page Default.aspx, il me redirige pas vers ma page de connexion, puis quand j'essaye d'accéder à d'autres pages par la barre d'adresse j'y arrive alors que vendredi dernier tout fonctionnait bien....

    Pouvez vous m'aider encore un petit peu s'il vous plaît ?

    Voici mon code de ma page de connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void cmd_connexion_Click(object sender, EventArgs e)
            {
                Hashtable t = new Hashtable();
                // utilisateur = mot de passe
                t["id"] = "mdp";
     
                if (t[txt_utilisateur.Text] != null &&
                    (t[txt_utilisateur.Text] as string) == txt_motdepasse.Text)
                    FormsAuthentication.RedirectFromLoginPage(txt_utilisateur.Text, false);
                else
                    lbl_erreur.Text = "Erreur de connexion. Veuillez recommencer";
     
            }
    Voici mon code qui se trouve dans ma page web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!--Activation du mode d'authentification en mode form-->
            <authentication mode="Forms">
              <!--loginUrl permet de désigner la page responsable de l'identification des utilisateurs-->
              <forms loginUrl="login.aspx"
              defaultUrl="Default.aspx"/>
            </authentication>
            <authorization>
              <deny users="?"/>
            </authorization>
    C'est toujours le même code que vendredi dernier........

    Je ne comprends pas pourquoi ça ne fonctionne plus correctement....

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  3. #23
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Pour tes pages, il faut vérifier que tu as un utilisateur connecté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    protected void Page_Load(object sender, EventArgs e)
    {
                // Vérification du User connecté 
                u = Membership.GetUser(User.Identity.Name);
     
                if (u == null)
                {
                    Response.Redirect("default.aspx");
                }
    }
    Concernant ta page de connexion, pourquoi ne pas utiliser la méthode ValidateUser du Membership ? Quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    protected void cmd_connexion_Click(object sender, EventArgs e)
    {
       MembershipUser user = Membership.GetUser(txt_utilisateur.Text);
     
        if (Membership.ValidateUser(txt_utilisateur.Text, txt_motdepasse.Text))
       {
            if (Request.QueryString["ReturnUrl"] != null)
            {
                FormsAuthentication.RedirectFromLoginPage(txt_utilisateur.Text, false);
            }
            else
           {
                FormsAuthentication.SetAuthCookie(txt_utilisateur.Text, false);
           }
     
            Response.Redirect("~/laPageVersLaquelleIlfautAller.aspx");
        }
    }

  4. #24
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Concernant ta page de connexion, pourquoi ne pas utiliser la méthode ValidateUser du Membership ?
    Je n'utilise pas Membership car je n'ai pas créé de table avec les rôles des utilisateurs, c'est seulement un seul et unique utilisateur qui a droit d'accéder à l'application.

    Voilà pourquoi.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  5. #25
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Une nouvelle donnée vient de s'ajouter en cours de route...

    J'aimerais savoir aussi si avec Membership l'on peut se connecter à plusieurs à l'application avec le même identifiant et mot de passe ?

    Sinon comment puis-je procéder ?

    Puis pour mon problème en faite, hé bien il est variant, des fois il fonctionne et d'autre fois non.

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  6. #26
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Si tu as utilisé le provider de sécurité par défaut du framework, alors tu dois avoir sur ton instance sql server une base de données aspnetdb.

    Si tu jettes un coup d'oeil aux tables de cette bdd, tu y verras un table "applications".

    La bonne nouvelle est donc que tu peux utiliser une même base pour gérer l'authentification à plusieurs applications

    Il te suffit pour ca de paramétrer une nouvelle application dans l'utilitaire de configuration de la sécurité asp.net et de renseigner la propriété ApplicatioName dans la section "providers" du noeud "membership" du web.config de ta nouvelle application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <membership>
                <providers>
                    <clear/>
                    <add name="AspNetSqlMembershipProvider"
                        type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                        connectionStringName="LocalSqlServer"
                        enablePasswordRetrieval="false"
                        enablePasswordReset="true"
                        requiresQuestionAndAnswer="true"
      requiresUniqueEmail="false"
                        passwordFormat="Hashed"
                        maxInvalidPasswordAttempts="5"
                        minRequiredPasswordLength="7"
                        minRequiredNonalphanumericCharacters="1"
                        passwordAttemptWindow="10"
                        passwordStrengthRegularExpression=""
                        applicationName="MyApp"
                    />
                </providers>
          </membership>

  7. #27
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Merci beaucoup calagan99 pour ta réponse.

    Désolée, je voulais dire est-il possible que plusieurs personnes puissent se connecter à une même application avec un même identifiant et un même mot de passe ?

    Et puis vu que ce sera une application en ligne, est-ce que la base de données d'authentification doit être sur tout les pc ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  8. #28
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Citation Envoyé par lou87 Voir le message
    Merci beaucoup calagan99 pour ta réponse.
    De rien

    Citation Envoyé par lou87 Voir le message
    Désolée, je voulais dire est-il possible que plusieurs personnes puissent se connecter à une même application avec un même identifiant et un même mot de passe ?
    Ca n'a pas beaucoup de sens mais oui c'est possible.

    Citation Envoyé par lou87 Voir le message
    Et puis vu que ce sera une application en ligne, est-ce que la base de données d'authentification doit être sur tout les pc ?
    Là par contre, tu me fais peur... Il s'agit d'un site web. La bdd est donc commune et par hébergée par chaque user...

  9. #29
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Là par contre, tu me fais peur... Il s'agit d'un site web. La bdd est donc commune et par hébergée par chaque user...
    Désolée je n'ai encore jamais fait de site web...

    Et puis vu que l'application risque d'être utilisé par plusieurs entreprises, je préfère être sûre.

    Voili, voilà.

    Mais il ne faut pas s'inquiéter, c'est aussi un peu la fatigue là.

    Et merci pour ta réponse.

    Je m'y lance tout de suite. ^_^
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  10. #30
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par lou87 Voir le message
    Je n'utilise pas Membership car je n'ai pas créé de table avec les rôles des utilisateurs, c'est seulement un seul et unique utilisateur qui a droit d'accéder à l'application.

    Voilà pourquoi.
    Si c'est ça le cas, t'as pas besoin d'utiliser le membership.

    Il te suffit de créer une classe de base pour toute tes page sécurisées; cette classe doit avoir System.Web.Page comme base. dans ton Page Load tu mettera un petit test sur une variable de type bool dans la Session. Dans ta page de connexion, si le mot de passe et le nom d'utilisateur lus du web.config sont les mêmes fournis par le visiteur, tu mettera ta variable à true.

  11. #31
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par robhood Voir le message
    Si c'est ça le cas, t'as pas besoin d'utiliser le membership.

    Il te suffit de créer une classe de base pour toute tes page sécurisées; cette classe doit avoir System.Web.Page comme base. dans ton Page Load tu mettera un petit test sur une variable de type bool dans la Session. Dans ta page de connexion, si le mot de passe et le nom d'utilisateur lus du web.config sont les mêmes fournis par le visiteur, tu mettera ta variable à true.
    Je suis désolée mais ce que je voulais dire par
    c'est seulement un seul et unique utilisateur qui a droit d'accéder à l'application.
    C'est que plusieurs personnes vont utiliser un identifiant et mot de passe unique.....

    Et je me demandais si ça ne ferait pas de bug ou le mieux est de créer des sessions avec quelques id et mdp mais que plusieurs personnes peuvent utiliser en même temps.......

    J'espère que ce que j'ai dit est compréhensible.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  12. #32
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Excusez moi, mais je commence à m'emmêler les pinceaux avec Membership....

    Si j'ai bien compris avant il faut aller sur la configuration d'ASP.net pour gérer les utilisateurs de l'application, c'est ça ?

    Je suis connecté à l'application Visual Studio en tant qu'administrateur, mais quand j'essaie d'accéder à la configuration d'ASP.NET j'ai droit à une page d'erreur avec ce message :
    Une erreur s'est produite. Retournez à la page précédente et recommencez.
    Et impossible d'avoir cette page sans erreur.....

    Et j'ai aussi essayé avec aspnet_regsql.exe, et en rentrant le nom du serveur sql serveur, mais rien à faire il me fait une erreur aussi en disant qu'il ne le trouve pas.

    Puis ensuite après avoir créer le tableau gérant les utilisateurs, que dois-je faire ?

    A moins que je me trompe dans la procédure......... ?

    Désolée de vous demander ça, mais plus je m'informe sur cette procédure plus j'ai l'impression que ça part dans tout les sens...

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  13. #33
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour

    Ahhh, c'est mieux quand la page de configuration est débloqué. ^_^

    Après ça va tous seul, en suivant cette procédure => http://msdn.microsoft.com/fr-fr/libr...=VS.80%29.aspx

    Mais une question demeure : est-il possible que plusieurs personnes puissent se connecter à l'application avec un seul et même identifiant et mot de passe, sachant qu'ils peuvent faire des modifications dans des bases de données, peut être en même temps ?

    Et puis une autre question me vient en tête sur la page Configuration ASP.Net, j'ai vu que je pouvais restreindre l'accès à un dossier seulement aux utilisateurs connectés, et quand j'essaie d'appliquer cette règle sur plusieurs dossiers, cela ne fonctionne pas..... Est-ce normale ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  14. #34
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Comment puis-je forcer l'application à rediriger l'utilisateur authentifié vers la page default.aspx (et cela même s'il a tapé une adresse différente dans la barre d'adresse) ?

    Car lorsque j'essai d'entrer directement dans l'application via la barre d'adresse il me redirige vers ma page de login.aspx. Jusque là tout va bien, mais quand il se connecte ensuite, l'application envoie l'utilisateur vers la page qu'il avait essayé d'accéder via la barre d'adresse et ce même si j'ai mis dans mon web.config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          <authentication mode="Forms">
            <forms loginUrl="login.aspx"
                   defaultUrl="Default.aspx"/>
          </authentication>
    Auriez-vous une idée sur ce problème ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  15. #35
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Je crois savoir d'où vient mon problème...

    En faite j'arrive à accéder à une des pages de mon site une fois où je m'étais logué, puis j'ai fermé l'onglet et recommencé donc je pense que le cookie contenant mon identifiant et mot de passe est encore actif.......

    Donc la solution serait de forcer mon application à supprimer/vider le cookie ou la session quand l'utilisateur ferme la page de l'application ou encore se déconnecte.

    Avez vous une idée sur la question ?

    En vous remerciant.
    Programmer c'est comme gravir une montagne...
    Il faut procéder par étapes...
    (? auteur ?)
    Un seul être vous manque et tout est dépeuplé.
    Lamartine (merci chat hotplug ^^)

  16. #36
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par lou87 Voir le message
    Donc la solution serait de forcer mon application à supprimer/vider le cookie ou la session quand l'utilisateur ferme la page de l'application
    C'est pas faisable

    Citation Envoyé par lou87 Voir le message
    Donc la solution serait de forcer mon application à supprimer/vider le cookie ou la session quand l'utilisateur se déconnecte.
    Ca se fait tout seul si t'utilises correctement les controles/méthodes du framework

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/10/2013, 13h33
  2. [D8][ASP] Deploiement de l'application Delphi ASP.NEt
    Par pop bob dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 23/08/2005, 18h41
  3. Réponses: 19
    Dernier message: 28/01/2005, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo