Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/02/2011, 17h28   #1
Membre du Club
 
Inscription : mars 2007
Messages : 136
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 136
Points : 44
Points : 44
Par défaut Authentification sur ASP

Bonjour tout le monde,
j'ai un petit problème que je souhaite partager avec vous,
dans une entreprise j'ai crée une petite application pour la gestion d'un service,
un serveur IIS, des interfaces ASP et une petite base de données sur access2003. Pour sécuriser l'accès aux interfaces j'ai réalisé une interface d'authentification (par login et mot de passe qui sont stockés dans une table access), ex: authentification.asp après l'authentification j'accède à index.html , dans mon cas l'application n'est pas totalement sécurisée c-a-d si je connais l'url des pages je peux y accéder directement sans passer par la page d'authentification!!
Que proposez-vous comme solution pour que personne ne peut pas accéder à aucune page sauf s'il passe par authentification.asp ???

et merci!
kovrov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 09h52   #2
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 363
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 363
Points : 1 546
Points : 1 546
Bonjour

Classiquement, pour ce genre de chose, on utilise des variables de session, que l'on positionne (à true, ou 1, par exemple) dans la page d'authentification, puis que l'on teste au début de chaque page que l'on veut "protéger". Si le test de cette variable n'est pas satisfait, on renvoie sur la page authentification.asp.
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 13h17   #3
Membre du Club
 
Inscription : mars 2007
Messages : 136
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 136
Points : 44
Points : 44
oui d'accord, mais ou je peux trouver un exemple, car je n'arrive pas à trouver!
kovrov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 15h19   #4
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 363
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 363
Points : 1 546
Points : 1 546
fais voir le code de ta page authentification
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 09h35   #5
Membre du Club
 
Inscription : mars 2007
Messages : 136
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 136
Points : 44
Points : 44
voici le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
<%
'chaine de connection avec dsn
Set Connection = Server.CreateObject("ADODB.Connection")%>
<%'-------déclaration de la base------------------------------
BASE_DONNEE = "DBQ=" & Server.Mappath("dbBiblio.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
Connection.Open BASE_DONNEE
 
'on recupere les champs du formulaire (method post : nom visible ds l'url, pas de querystring!!!)
Dim idlog
idlog=Request.Form("idlog")
Dim idpass
idpass=Request.Form("idpass")
 
'on cherche si le nom est bien dans la base
'------------------------------------------
SQL = "Select User.* From User Where User.[Nomuser]= '"&idlog&"';"
 
Set RsId = Server.CreateObject("ADODB.Recordset")
RsId.Open SQL, Connection, 3%>
 
 
<%If RsId.RecordCount = 0 Then%>
 
<html>
<body>
<form name="identification" action="./identification.asp" method=post>
    <table width="450" border="0" cellspacing="0" cellpadding="0" align="center">
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <tr> 
        <td colspan="2" bgcolor="#99CCFF" align=center><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">&#149; 
        <u>Identifiez - vous</u> : </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
        <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Login 
            : </font></div>
        </td>
        <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp; 
        <Input Type="text" name="idlog">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
        <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Password 
            : </font></div>
        </td>
        <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp; 
        <Input Type="password" name="idpass">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
        <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"> 
            <Input Type="reset" name="button2" value="Effacer">
            &nbsp;&nbsp;</font></div>
        </td>
        <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp;&nbsp; 
        <Input Type="submit" name="Submit" value="Identifier">
        </font></td>
    </tr>
    </table>
</form>
</body>
</html>
<%elseif RsId("Password")= idpass then%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
</head>
 
<frameset >
 
    <frame src="ajoutetmodif.asp" name="mainFrame">
</frameset>
<noframes>
 
<body onload=scrollit(100)>
 
</body>
</noframes>
</html>
<%else%>
<script language=javascript>
alert('Mot de passe incorrect');
history.back();
</script>
<%End If%>
kovrov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 21h59   #6
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 246
Points : 1 203
Points : 1 203
Envoyer un message via MSN à kaiser59
Salut,

Quelques petites remarques :
- assez lourd ton code, pas besoin de fermer le code asp si tu es toujours dedans juste après, exemple :
Code asp :
1
2
3
4
5
6
7
8
9
10
<%
'chaine de connection avec dsn
Set Connection = Server.CreateObject("ADODB.Connection")
'%> <= peut etre enlever étant donné qu'après tu es encore en asp
'<% <= pareil
 -------déclaration de la base------------------------------
BASE_DONNEE = "DBQ=" & Server.Mappath("dbBiblio.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
Connection.Open BASE_DONNEE
...
%>

- Tu fais une comparaison uniquement sur le login ?
- Si tu utilises qu'une seule table inutile de mettre "users.*" dans tes champs de selection

Pour résumer, tu devrais avoir ceci :

Code asp :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
strlog = request.form("login")
 
if strlog <> "" then
'code précedent la connexion etc...
req = "Select login from users where login = '"& strlog &"'"
rs.open req, conn
 
if not rs.eof then 'cela signifie que l'on n'atteint pas la fin de la table et qu'un enregistrement existe
   Session("nom") = rs(0) 'récupère dans ta requete tous les champs que tu le souhaites et le mettre dans une (ou plusieurs) session ce qui t'évitera de rappeler une requete à chaque fois que tu voudrais mettre le nom de l'utilisateur par exemple
   Session("auth") = 1 'ceci te permettra de verifier dans chaque page si la personne est identifiée
   response.redirect "index2.asp"
else 
 response.redirect "login.asp"
end if
 
...
end if

Enfin dans chaque page (les 1ères lignes) tu commenceras par vérifier si la personne s'est bien connectée en mettant ceci :
Code asp :
1
2
3
4
5
if request.session("auth") = 1 then
'code de la page
else 'à mettre à la fin de la page
  response.redirect "login.asp"
end if

Voilà en quelque ligne ce que tu dois faire
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h22.


 
 
 
 
Partenaires

Hébergement Web