Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : restreindre l'acces à un dossier [ Archives / Général ] (emeric b)

mardi 26 juillet 2005 à 14:16:29 | restreindre l'acces à un dossier

emeric b

Salut,

Je rencontre un problème sur un site en cfm. Je souhaite restreindre l'accès à certains dossiers (un dossier restreint par membre).

En premier lieu je pensais utiliser la fameuse protection
.htaccess mais l'hébergeur refuse.

Il semble que l'on puisse restreindre l'accès à un dossier à l'aide d'une appli ColdFusion. Mais j'ai rien trouver dans la rubrique Codes qui traite de cette fonctionnalité.

J'ai besoin d'un coup de pousse pour commencer...

Merci d'avance

Emeric B

vendredi 29 juillet 2005 à 22:18:24 | Re : restreindre l'acces à un dossier

lfontaine

Salut,

Le plus simple serait de gerer un system de login lie avec une base de donnes, tu crees un form qui accepte un login et mot de passe. Ta page d'action verifie que ces infos sont dans ta table logins ou utilisateurs.
Si oui, tu cree une variable de session qui te permet de retrouver l'id de l'utilisateur logge. Si non, retour au form.

Pour proteger une page cfm, un dossier contenant des pages cfm, tu cree un application.cfm dans ce dossier avec dedans

cfparam session.userid = 0
if session.userid EQ 0
cflocation url="monurl/login.cfm" addtoken=no

Laurent

mardi 2 août 2005 à 13:08:07 | J'y arrive pas !

emeric b

Slt Laurent,

D'abord merci pour le coup de pousse. Le problème c ke j'y arrive pas. Voila la situation :

Soit l'architecture suivante :

dossier_public/admin

dossier_public c la racine du site tout le monde peut consulter les pages
/admin c le dossier à protéger

Dans dossier_public j'ai une page login.cfm qui accepte un login et un mot de passe qui sont contenus dans une table de la base MS Access. Si le login et le pass sont OK l'utilisateur doit aller à /admin sinon retour à
login.cfm

Voila la page login.cfm créée avec le "Connecter l'utilisateur" dans Dream MX :
::::::::::::::::::::::::::::::::::::::::::::::::::::::

<cfif IsDefined("FORM.login_tz")>
  <cfset MM_redirectLoginSuccess="admin/">
  <cfset MM_redirectLoginFailed="login.cfm">
  <cfquery  name="MM_rsUser" datasource="autodb">
  SELECT login,pass FROM admin WHERE login='#FORM.login_tz#' AND pass='#FORM.pass_tz#'
  </cfquery>
  <cfif MM_rsUser.RecordCount NEQ 0>
    <cftry>
    <cflock scope="Session" timeout="30" type="Exclusive">
      <cfset Session.MM_Username=FORM.login_tz>
      <cfset Session.MM_UserAuthorization="">
    </cflock>
    <cfif IsDefined("URL.accessdenied") AND true>
      <cfset MM_redirectLoginSuccess=URL.accessdenied>
    </cfif>
    <cflocation url="#MM_redirectLoginSuccess#" addtoken="no">
    <cfcatch type="Lock"><!--- code for handling timeout of cflock --->
    </cfcatch>
    </cftry>
  </cfif>
  <cflocation url="#MM_redirectLoginFailed#" addtoken="no">
  <cfelse>
  <cfset MM_LoginAction=CGI.SCRIPT_NAME>
  <cfif CGI.QUERY_STRING NEQ "">
    <cfset MM_LoginAction=MM_LoginAction & "?" & XMLFormat(CGI.QUERY_STRING)>
  </cfif>
</cfif>
<form name="form1" method="POST" action="<cfoutput>#MM_loginAction#</cfoutput>">
  <table width="417" border="0">
    <tr>
      <td width="95">login</td>
      <td width="312"><input name="login_tz" type="text" id="login_tz"></td>
    </tr>
    <tr>
      <td>pass</td>
      <td><input name="pass_tz" type="text" id="pass_tz"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Envoyer"></td>
    </tr>
  </table>
</form>

::::::::::::::::::::::::::::::::::::::::::::::::::::::

Malheureusement ça marche pas ! Dans le dossier /admin j'ai mis la page application.cfm kom tu ma dis mé même en mettant un bon jeu login/mot de passe je retourne tjs sur login.cfm

T'as une idée ?
Merci d'avance
Emeric

PS : y'a quelques mois tu m'avais conseillé Autoresize de CFDev.com et franchement ça marche très bien. Merci !


mercredi 3 août 2005 à 04:02:32 | Re : restreindre l'acces à un dossier

lfontaine

Salut,

humm interessant l'usine a gaz.
Tu as mis quoi dans ton fichier application.cfm ?

j'ai quelques idees a mon avis tu as une erreur qui est capturee par le cftry ce qui fait que tu ne la voie pas.

Mais je serais toi je simplifierait le tout du genre:

<cfparam name="FORM.login_tz" default="">
<cfif FORM.login_tz NEQ "">
  <cfquery  name="MM_rsUser" datasource="autodb">
  SELECT login FROM admin WHERE login='#FORM.login_tz#' AND pass='#FORM.pass_tz#'
  </cfquery>
  <cfif MM_rsUser.RecordCount NEQ 0>
      <cfset Session.MM_Username=FORM.login_tz>
    <cflocation url="admin/index.cfm" addtoken="no">
  </cfif>
</cfif>
<form name="form1" method="POST" action="#">
  <table width="417" border="0">
    <tr>
      <td width="95">login</td>
      <td width="312"><input name="login_tz" type="text" value="<cfoutput>#FORM.login_tz#</cfoutput>" id="login_tz"></td>
    </tr>
    <tr>
      <td>pass</td>
      <td><input name="pass_tz" type="text" id="pass_tz"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Envoyer"></td>
    </tr>
  </table>
</form>

le fichier Application.cfm dans admin deviendrais donc

<cfparam name="session.MM_Username" default = 0>
<cfif session.MM_Username EQ 0 >
  <cflocation url="/login.cfm" addtoken="no">
</cfif>

Penses a creer un fichier index.cfm dans le repertoire admin.

Laurent

jeudi 4 août 2005 à 14:41:27 | Re : restreindre l'acces à un dossier

emeric b

Salut,

Désolé pour l'usine à gaz mais je dois avouer que ce probleme de restriction d'accès ça me dépasse.
Ton code fonctionne déjà mieux mais si je tape le bon login et mot de passe il me sort l'erreur suivante :

Erreurs signalées par le compilateur Java :

Found 1 semantic error compiling
"C:/CFusionMX/wwwroot/WEBINF/cfclasses/cfApplication2ecfm306801756.java":
1. public final class cfApplication2ecfm306801756 extends
coldfusion.runtime.CFPage{ <------------------------->
*** Error: Cannot write class file
"cfApplication2ecfm306801756.class" because that name
conflicts with the name of the class file
"cfapplication2ecfm306801756.class" in directory
"cfclasses". This is illegal because file names are case-insensitive in this system.

T'as une idée ?

Merci
Emeric


vendredi 5 août 2005 à 01:12:52 | Re : restreindre l'acces à un dossier

lfontaine

Salut,

Humm strange, n'aurais tu pas renomme ton fichier application.cfm en Application.cfm ?

Essayes de trouver le repertoire WEBINF, dans ce repertoire tu as un repertoire cfclasses, supprime le fichier cfapplication2ecfm306801756.class
Cela devrait  supprimer l'erreur.

Laurent

mercredi 21 septembre 2005 à 15:34:00 | Re : restreindre l'acces à un dossier

crahier

Bonjour,

Ne faudrait-il pas également tester si #session.MM_Username# = le nom du répertoire car une personne logguée pourrait très bien aller dans le répertoire d'une autre, non ?

Christophe


jeudi 22 septembre 2005 à 00:46:52 | Re : restreindre l'acces à un dossier

lfontaine

Salut,

Je ne pense pas que le but soit d'avoir un repertoire par utilisateur. Juste s'assurer que la personne est identifiee avant d'acceder a un certain repertoire.

Laurent


jeudi 22 septembre 2005 à 07:30:44 | Re : restreindre l'acces à un dossier

crahier

Possible ... :-) C'était juste au cas où ;-)



Cette discussion est classé dans : dossier, acces, accès, restreindre


Répondre à ce message

Sujets en rapport avec ce message

transfert de base de donnee (acces -> Unix) [ par guad ] salut a tous!!je suis étudient dans les réseaux (dut GTR 2é annee) et comme projet technique je me suis lancé dans le transfert d'une base de donnée s pb accès page acceuil admin CF [ par joelfromparis ] Bonjour, voici mon problème :Installation de Cold Fusion MX sur un serveur Windows 2000 Server SP3 (en mode autonome) fonctionnant avec IIS 5.0L'insta macro acces [ par bruno270579 ] bonjour le forumqqn saurait il m'expliquer comment executer une macro (base de données acces) via coldfusion?je suppose qu'il y a moyen ..merci de vot remonter d'un niveau [ par Mr_Q ] Bonjour.Je souhaite afficher une image sur une page cfm. Mon problème est que mon image se trouve dans le dossier parent, par rapport à ma page.exempl Compacter base data acces à partir de base pgm [ par BachM ] Comment dans un module d'une base access compacter une autre base access . La base à compacter est généralement ouverte (le .ldb existe et on connait Pas d'accès à l'administration de Coldfusion mx [ par Julien Briens ] Bonjour,j'ai un problème!!!Lorsque je veux accéder à l'administration de Coldfusion mx, j'ai un écran blanc qui s'affiche.J'ai l'impression que les pa Supprimer un dossier via cfftp [ par mandaillou ] SalutJe voudrais supprimer un répertoire via cfftp. Mon problème est que ce dossier est non vide et donc j'ai une erreur.Pour supprimer un dossier non suppression de dossier non vide [ par melvar ] Salut à tous !! Je précise tout de suite que le serveur de mon entreprise tourne sous une version inférieure à coldfusion 7... L'option de récursivité Appel d'un tag depuis un autre dossier. [ par illeriane ] Bonjour,Mon problème est simple: L'application que je développe s'étend sur plusieurs répertoires. Mes tags ainsi que CFFTP CHMODE CFZIP [ par XnomosX ] Salut ,Voila j'ai besoin de dé-zipper un dossier sur un serveur A pour l'envoyer sur le serveur B ... Jusque la tout vas bien.Sauf qu'une fois dé-zipp


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.