Aspx. protection de page

Signaler
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
Bonjour,

Je voudrais proteger mon site web.

Je voudrais que lorsque le cookie de session de connection est vide ou null alors que l'utilisateur soit redirigé vers une page standard par exemple.

La procedure que j'ai faite necessite qu'elle soit inserer dans toutes les pages du site donc assez laborieux à faire et à mettre en place sans parler de la maintenance.

Y aurait il une autre methode propre a .Net ?

13 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Oui, c'est a configurer dans le Web.config.

Pour plus d'explications, ca se passe ici.
http://www.dotnetjunkies.com/quickstart/aspplus/doc/formsauth.aspx
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

mais les utilisateurs authorisé viennent d'une BDD pas dans le fichier Web.config avec les "user name".
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Ce n'est pas important ça.

inspire toi du code source, mais a la place du
 if ((UserEmail.Value "someone@www.contoso.com") && (UserPass.Value "password")) {

dans le fichier login.aspx, tu mets ta procédure d'authentification a toi (via ta BDD).

Grace a la propriété <deny users="?" /> dans le web.config, tous les utilisateurs que tu n'auras pas authentifié seront amené sur la page que tu auras défini comme page d'authentification (loginUrl).
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

Dans mon web.config je mets :

<forms name=".userKnown" loginUrl="index.aspx" protection="All" timeout="30" path="/">
<!-- protection="[All|None|Encryption|Validation]" -->
</forms>

OU

<configuration>
<system.web>

<deny users="?" />

</system.web>
</configuration>

Dans ma page de login je mets quoi ? pour appeler l'authentification du web.config.

si je reprends : if ((UserEmail.Value "someone@www.contoso.com") && (UserPass.Value "password")) {OK}else{PAS OK}

merci je nage vraiment la
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Dans le web.config, tu peux mettre

<configuration>
  <system.web>
      
        <forms name=".userKnown" loginUrl="index.aspx" protection="All" timeout="30" />
      
      
        <deny users="?" />
      
    <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
  </system.web>
</configuration>


Dans ta page index.aspx tu authentifies comme tu l'aurais fait précédemment (en testant les userid et password dans ta base de données, etc) et si l'authentification est bonne, tu utilises

FormsAuthentication.RedirectFromLoginPage(id, true)


qui renvoit l'utilisateur authentifié vers la page sur laquelle il voulait aller à la base.

J'espere que c'est plus clair.
Bon courage
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

juste une chose,
"FormsAuthentication.RedirectFromLoginPage(id, true)" c'est une class et methode.net ? si oui quel reference faut il que j'ajoute ?

merci a toi encore
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Oui oui, c'est bien du .net.
Je crois, pour les references, que c'est System.Web.Security
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

Me revoila,

cela marche pour certaines pages mais pas pour d'autres.

C'est a dire que si je releve l'url d'une page du site et que je l'inscrit directement dans le navigateur sans passer par la page de logue et bien il me donne qd meme la page sans que je soit loguer. ?!?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
C'est vrai que ca c'est bizarre.
Du a bien mis le deny="?" pour que ca redirige tous les utilisateurs anonymes ?

Autrement, c'est peut-etre parce que tu t'etais deja logué avant, et que tu n'as pas fermé le navigateur, donc il garde la session précédente ?
Il faut que tu vois apres, avec les cookies, etc. Peut-etre qu'il garde la session, mais qu'il te met quand meme comme non loggé parce qu'il ne te reconnait parce que tes cookies ne contiennent pas les elements qu'il te faut pour pouvoir t'identifier.
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

Dans mon web config j'ai :

<forms name=".userKnown" loginUrl="index.aspx" protection="All" timeout="30" />

<deny users="?" />

et dans ma page de logue :
if(oGen.formValidate(login.Text,password.Text)){
FormsAuthentication.RedirectFromLoginPage(login.Text,true);
}

Et lorsque j'apelle une page de mon site dans l'url du navigateur et bien ca me l'affiche.

Comprends plus rien moi !!!
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Tout me semble correct pourtant.
Et si on regarde l'exeple du lien cité plus haut, ca fonctionne, donc je vois pas pourquoi ca fonctionne pas chez toi...

Non, la vraiment je sais plus.
Y'as pas l'air d'avoir d'erreur de syntaxe ni de casse dans ton web.config . Et pourtant l'erreur vient de lui on dirait.
La page que tu appelles dans ton navigateur ne serait pas dans un sous dossier, régit lui par un autre web.config ?

vraiment, je sais pas, je suis désolé
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

non c'est une page a la racine.

merci quand meme, tu m'a vraiment aidé.

Si je trouve je te tiens au courant.
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
oki, bonne chance et bon courage !