public override bool Equals (object obj)
{
AuthorizationRule auth = obj as AuthorizationRule;
if (auth == null)
return false;
if (action != auth.Action)
return false;
if (Roles.Count != auth.Roles.Count
|| Users.Count != auth.Users.Count
|| Verbs.Count != auth.Verbs.Count)
return false;
int i;
for (i = 0; i < Roles.Count; i ++)
if (Roles[i] != auth.Roles[i])
return false;
for (i = 0; i < Users.Count; i ++)
if (Users[i] != auth.Users[i])
return false;
for (i = 0; i < Verbs.Count; i ++)
if (Verbs[i] != auth.Verbs[i])
return false;
return true;
}