ColdFusion 8, serveur 2005
Problem de la milliseconde SQL en bref : I veulent limiter l'accès aux chemises spécifiques selon « UserRoleID » variable. Seulement a noter-dans UserID avec un UserRoleID spécifique devrait pouvoir voir certain folders.
Problem en détail : Thanks à beaucoup d'aide patiente de _agx_, de gdemaria, et d'autres experts, j'ai pu obtenir une application d'enregistrement d'utilisateur fonctionnant très bien, au rel= " nofollow " de » _blank » de target= de " http://www.nbptsprincipals.org/admin/ » de href= de le .org/admin/.
Currently de http://www.nbptsprincipals si un utilisateur est ouvert une session à cette application, puis elle peut voir toutes les pages Web dans les chemises restreintes /admin/, /liaison/, et /principal/. Le code qui permet ceci est dans application.cfc, dans l'onRequestStart de fonction, ainsi : securefolders de variété de = « admin, liaison, " listFindNoCase principal de
(le securefolders, le listFirst (cgi.script_name, « /")) et le session.auth.isLoggedIn est notes de >Other d'underline des " de class= du
du template= " LoginForm.cfm " de : 1. Dans ma table de base de données il y a de trois UserRoleIDs :
UserRoleID = 1 UserRoleID = UserRoleID = 5
2. Dans la table de données, le PK est identification de l'utilisateur. Les différentes identifications de l'utilisateur ont le >Problem différent de " underline " de class= d'UserRoleIDs.
I AM essayant de limiter l'accès aux chemises par identification de l'utilisateur : le
* noter-dans des identifications de l'utilisateur avec UserRoleID 1 peut voir everything.
* noter-dans des identifications de l'utilisateur avec UserRoleID 3 peut voir tout excepté le contenu dans la chemise /admin/.
* noter-dans des identifications de l'utilisateur avec UserRoleID 5 peut voir tout excepté le contenu dans les chemises /admin/ et /liaison/. >What de " underline " de class= du
I ont travaillé sur cette tâche pour beaucoup d'aujourd'hui. Dans application.cfc, j'ai expérimenté avec différents rapports de CFIF, et ai finalement monté avec ceci :
< ! --- si le visiteur n'est pas ouvert une session, elle ne voit pas les chemises restreintes, et obtient envoyée à LoginForm.cfm ---le est False>
< ! --- chemises bloquées de cfset ---securefolders de variété du >
(securefolders,
< de de > de template= " LoginForm.cfm " de de listFirst (cgi.script_name, « /")) ! --- si le visiteur est ouvert une session comme UserRoleID 1, alors elle peut voir toutes les chemises ---le est vrai et session.auth.UserID est listFindNoCase de de securefolders = de "" de variété de 1> rs,
< de > de template= " LoginForm.cfm " de de listFirst (cgi.script_name, « /")) ! --- si le visiteur est ouvert une session comme UserRoleID 3, alors elle peut voir toutes les chemises excepté la chemise /admin/ ---le est vrai et session.auth.UserID est des securefolders de variété de 3>
de « admin " (securefolders,
< de > de template= " LoginForm.cfm " de de listFirst (cgi.script_name, « /")) ! --- si le visiteur est ouvert une session comme UserRoleID 5, alors elle peut voir toutes les chemises excepté la chemise /admin/ et /liaison/ ---le est vrai et session.auth.UserID est des securefolders de variété de 3>
de liaison " (le securefolders,
But, ColdFusion du > du template= " LoginForm.cfm le " de du listFirst (cgi.script_name, « /")) rejette mon travail, en haut. Le CF m'indique que que les securefolders de variété de doivent être le premier onRequestStart intérieur placé de fonction, qui ruine l'arrangement de CFIF je s'est développé, above.
What est une meilleure manière de limiter l'accès aux chemises par UserRoleID ?
Thank vous en tant que toujours pour tout conseil. J'attache au-dessous de mon application.cfc.
Eric
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
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 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
|
class= de
>< " de l'id= " codeSnippet828434 de
output=
< ! --- Nommer l'application. --->
< ! --- Allumer la gestion de session. --->
< ! --- placer le chemin à cfform.js --->
default= " http://76.12.181.86/CFIDE/scripts/cfform.js "/> de " corde " de type= du name= " request.CFFORM_JS_Lib " de
returnType= " de " onApplicationStart " de name= " de
< ! --- Toutes les variables réglées ici peuvent être employées par toutes les pages d'application --->
panyName d'APPLICATION.com de
returntype= " de " clearSessionVariables de name= " de
< ! --- a défini toutes les variables de session, ainsi elles existeront toujours ---->
returntype= " de " onSessionStart de name= " de
< ! --- a défini toutes les variables de session, ainsi elles existeront toujours ---->
clearSessionVariables de
< ! --- fonction : onRequestStart --->
returnType= " de " onRequestStart " de name= " de
securefolders de variété de
< ! --- si query_string contient la fonte (, alors l'arrêt ! --->
le
< ! --- commencer le cfif isDefined (« form.userEmail ») et isDefined (« form.userPassword ») --->
le
< ! --- l'utilisateur essaye d'ouvrir une session, ainsi traiter la demande d'ouverture ---->
checkLogin de
template= " LoginForm.cfm " de < ! --- l'ouverture a échoué, ainsi forme d'ouverture d'exposition ---->
< ! --- checkLogin étroit de cfif PAS (form.userEmail, form.userPassword) --->
< ! --- le cfif étroit isDefined (« form.userEmail ») et isDefined (« form.userPassword ») et isDefined (« form.doLogin ») --->
listFindNoCase de
template= " LoginForm.cfm " de
< ! --- fonction étroite : onRequestStart --->
< ! --- commencer le cfif isDefined (« form.doLogin ») --->
< ! --- commencer le checkLogin de fonction --->
name= " checkLogin " de
""/> de default= de required=false de " p_UserEmail " de name= de de default= de required=false de " p_password " de name= de
variété UserEmail = équilibre (arguments.p_UserEmail) de
getUser = "" de variété de
le (d'UserEmail)
le message= de
datasource= " #APPLICATION.dataSource# " de " getUser " de name= de
CHOISIR l'identification de l'utilisateur, FirstName, UserRoleID, UserEmail, UserPassword
Des tbl_NBPTS_Principals
LÀ OÙ UserEmail = maxlength= " de
email address et/ou mot de passe incorrects de message= de
le
mot de passe inadmissible de message= de
clearSessionVariables de
< ! --- Maintenant que l'utilisateur est ouvert une session, l'envoyer à la racine de Web --->
" d'url= de
true> de
clearSessionVariables de
false> de
< ! --- checkLogin étroit de fonction --->
< ! --- le cfif étroit isDefined (« form.doLogin ») --->
|
class= de
|