Fråga : säkerhet utfärdar i inloggningsapplikation: en loggad in användare är kompetent att redigera henne, eller hans eget profilerar

Hälsningvänner. I grundar en säkerhet utfärdar i min inloggningsapplikation. Denna är NBPTS-applikationen som vid nu är förtrogen vän till många av dig i CFML-fora. =) den A loggade in användaren är kompetent att redigera henne, eller hans eget profilerar: för href=" http://www.nbptsprincipals.org/principal/principal_registration.cfm?UserID=160 " för

http://www.nbptsprincipals .org/principal/principal_registration.cfm? UserID=160

But, genom enkelt att ändra, i webbläsareläget, sätter in, värdera UserID=160 till en annan UserID, hon kan beskåda och redigera andra UserIDs för!

Is där a långt som säkrar UserIDs? Finns det ett meddelande som jag kan tillfoga till onRequestStarten fungerar i application.cfc för att förkasta att redigera av andra UserIDs? meddelandet för

The skulle behovsnågot att säga:

*, om den loggade in användaren har UserRoleID 5, hon kan redigera endast hennes UserID.

*, om den loggade in användaren har UserRoleID 3, honom kan redigera UserIDs med UserRoleID 5, och hans egna UserID.

*, om den loggade in användaren har UserRoleID 1, hon kan redigera all UserIDs.

How skulle mig tillfogar att logik till min existerande onRequestStart fungerar?

Thank dig som alltid för någon advice.

Eric B
> för
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:
" codeBody " " >< för class= " för isDefined expires= " 7 " för checkLogin för eq för eq för
" klar "

Svar : säkerhet utfärdar i inloggningsapplikation: en loggad in användare är kompetent att redigera henne, eller hans eget profilerar

Brunn in

      {33, ”B”}, {22, ”C”}, {22, ”D”}, {44, ”E”}, {22, ”D”}

du har det mycket dubbletttillträde - precis att ta det bort, efter det har sorterats, e.g.
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:
#include  
#include  
#include  
#include  
#include  
#include  
#include  

using namespace std;

struct StudentAttempt
{
   int distanserar;
   stränga studentName;
};

cmpEntry bool (lämnade StudentAttempt, högra StudentAttempt) {
   återgång == right.studentName för && left.studentName för left.distance-== right.distance;
}
boolcmpAttempts (lämnade StudentAttempt, högra StudentAttempt) {
   om (left.distance < right="">& v, constStudentAttempt& sa, stringstream& ss) {

   vektor:: const_iterator i = v.begin ();
  size_t sz = 0;
  boolbFirst = true;

  stunder (I! = v.end ()) {

    om (isDistEqual (*ien, sa)) {
    
      om (! ss-studentName för bFirst <>);
      ++sz;
    }

    ++i; 
    bFirst = falskt;
  }

  återgång sz;
}
 

huvudsaklig int () {

   StudentAttempt throwDist [] = {
      {50, ”A”},      {22, ”A”},      {16, ”B”},      {44, ”C”},
      {33, ”D”},      {34, ”E”},      {22, ”F”},      {21, ”G”},
      {49, ”A”},      {5, ”B”},      {2, ”C”},      {22, ”A”},
      {33, ”B”},      {22, ”C”},      {22, ”D”},      {44, ”E”}, {22, ”D”}
   };


   uppsättningen behandlade;

   int len = sizeof) (för throwDist/sizeof (throwDist [0]);

   vektor dist (throwDisten, throwDist + len);
   vektor:: iterator det = dist.begin ();

   sortera (dist.begin (), dist.end (), cmpAttempts);

   unikt (dist.begin (), dist.end () som, är cmpEntry); // tar bort identiska dubblett från den sorterade vektorn


   för (; det! = dist.end (); it++) {

      stringstream ss;

      para:: iterator bool> p = handled.insert (it->distance);

      om (! p.second) fortsätter; // behandlade redan

      om (0  < printAllEqual="">
           
Andra lösningar  
 
programming4us programming4us