protected override Properties <string, string> GetDisallowedPrincipal(
            OperationCode[] opCodes, string[] regionNames, int index)
        {
            Role roleType           = GetRequiredRole(opCodes, regionNames);
            Role disallowedRoleType = Role.Reader;

            switch (roleType)
            {
            case Role.Reader:
                disallowedRoleType = Role.Writer;
                break;

            case Role.Writer:
                disallowedRoleType = Role.Reader;
                break;

            case Role.Query:
                disallowedRoleType = Role.Reader;
                break;

            case Role.Admin:
                disallowedRoleType = Role.Reader;
                break;
            }
            CredentialGenerator.ClassCode cGenCode = this.m_cGen.GetClassCode();
            switch (cGenCode)
            {
            case CredentialGenerator.ClassCode.Dummy:
                return(GetDummyPrincipal(disallowedRoleType, index));

            case CredentialGenerator.ClassCode.LDAP:
                return(GetLdapPrincipal(disallowedRoleType, index));
            }
            return(null);
        }
        protected override Properties <string, string> GetAllowedPrincipal(
            OperationCode[] opCodes, string[] regionNames, int index)
        {
            CredentialGenerator.ClassCode cGenCode = this.m_cGen.GetClassCode();
            Role roleType = GetRequiredRole(opCodes, regionNames);

            switch (cGenCode)
            {
            case CredentialGenerator.ClassCode.Dummy:
                return(GetDummyPrincipal(roleType, index));

            case CredentialGenerator.ClassCode.LDAP:
                return(GetLdapPrincipal(roleType, index));
            }
            return(null);
        }