Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            string userAccountName = Environment.UserName;

            bool accountNameSpecified = false;

            if (args.Count() > 0)
            {
                userAccountName      = args[0];
                accountNameSpecified = true;
            }

            NetworkDetail.UserAccessDetail userAccessDetail = new UserAccessDetail();

            Console.WriteLine();
            Console.WriteLine("Distinguished Name for Account \"{0}\" is:", userAccountName);
            Console.WriteLine("    \"{0}\"", userAccessDetail.DistinguishedNameFromSAMAccountName(userAccountName));

            string userDescription =
                userAccessDetail.UserDescriptionFromDistinguishedName(
                    userAccessDetail.DistinguishedNameFromSAMAccountName(userAccountName));

            Console.WriteLine();
            Console.WriteLine("User Description for Account \"{0}\" is \"{1}\"", userAccountName, userDescription);

            string userTechRef = userAccessDetail.UserTechRefFromAccountName(userAccountName);

            Console.WriteLine();
            if (userTechRef != null)
            {
                Console.WriteLine("User \"{0}\" Tech. Ref. is \"{1}\"", userAccountName, userTechRef);
                ValidateUserTechRef(userAccountName, userTechRef, true);
            }
            else
            {
                string potentialTechRef = ParseDescriptionForUserTechRef(userDescription);
                if (potentialTechRef == null)
                {
                    Console.WriteLine("User \"{0}\" does not have a Tech. Ref.", userAccountName);
                }
                else
                {
                    Console.WriteLine("User \"{0}\" has a potential Tech. Ref. of \"{1}\"", userAccountName,
                                      potentialTechRef);
                    userTechRef = potentialTechRef;
                }
            }

            FunctionRequired functionRequired = FunctionRequired.None;

            if (accountNameSpecified)
            {
                functionRequired = FunctionRequired.SingleTechRefLookup;
            }
            else
            {
                functionRequired = FunctionRequired.GroupTechRefLookup;
            }
            switch (functionRequired)
            {
            case FunctionRequired.SingleTechRefLookup:
            {
                ShowGroupMembershipDetails(userAccessDetail, userAccountName, userTechRef, "System Builders");
                ShowGroupMembershipDetails(userAccessDetail, userAccountName, userTechRef, "Zurich Home Underwriting Specialist");
            }
            break;

            case FunctionRequired.GroupTechRefLookup:
            {
                Console.WriteLine();
                Console.WriteLine("Looking up all AD Users");
                Console.WriteLine();
                Collections.CaseIgnoringSortedSetType networkUserCommonNames = userAccessDetail.NetworkUserSet();
                Console.WriteLine("Total Count of AD Users is {0}", networkUserCommonNames.Count);
                Console.WriteLine();
                int userIndex = -1;
                foreach (string userCommonName in networkUserCommonNames)
                {
                    userIndex += 1;
                    string userDistinguishedName =
                        userAccessDetail.DistinguishedNameFromCommonName(userCommonName);
                    string thisUserDescription =
                        userAccessDetail.UserDescriptionFromDistinguishedName(userDistinguishedName);
                    string thisUserTechRef =
                        userAccessDetail.UserTechRefFromUserDistinguishedName(userAccessDetail.DistinguishedNameFromCommonName(userCommonName));
                    Console.WriteLine("{0,4} : User \"{1}\". Tech. Ref. = \"{2}\". Description = \"{3}\"",
                                      userIndex,
                                      userCommonName,
                                      (String.IsNullOrEmpty(thisUserTechRef) ? "Not known" : thisUserTechRef),
                                      thisUserDescription);
                    ValidateUserTechRef(userCommonName, ParseDescriptionForUserTechRef(thisUserDescription), false);
                }
            }
            break;
            }

            Collections.CaseIgnoringSortedSetType networkGroupsForUser = userAccessDetail.NetworkGroupsForUserAccountName(userAccountName);
            Console.WriteLine();
            Console.WriteLine("Network Group Membership for \"{0}\"", userAccountName);
            Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
            foreach (string networkGroupName in networkGroupsForUser)
            {
                Console.WriteLine("    \"{0}\"", networkGroupName);
            }
        }