Ejemplo n.º 1
0
        /// <summary>
        /// Gets Active Directory group names the subject belongs to.
        /// Makes server calls. This could take some time for very large group memberships.
        /// </summary>
        private string[] GetGroupMembershipNames(Session session)
        {
            try
            {
                if (groupMembershipSids != null)
                {
                    var output = new string[groupMembershipSids.Length];

                    for (int i = 0; i < groupMembershipSids.Length; i++)
                    {
                        string sid = groupMembershipSids[i];
                        Dictionary <String, String> info = Auth.get_subject_information_from_identifier(session, sid);
                        string name = "";

                        if (info.TryGetValue("subject-displayname", out name))
                        {
                            output[i] = name;
                            continue;
                        }
                        if (info.TryGetValue("subject-name", out name))
                        {
                            output[i] = name;
                            continue;
                        }

                        output[i] = sid;
                    }
                    return(output);
                }
            }
            catch (Failure)
            {
            }
            return(null);
        }
Ejemplo n.º 2
0
 private string GetName(Session session)
 {
     try
     {
         Subject subj = new Subject();
         subj.other_config = Auth.get_subject_information_from_identifier(session, userSid);
         return(subj.SubjectName);
     }
     catch (Failure)
     {
         return(null);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Makes server calls, call off the event thread.
        /// </summary>
        /// <param name="session"></param>
        private UserDetails(Session session)
        {
            _session = session;
            userSid  = session.UserSid;

            try
            {
                Subject subj = new Subject();
                subj.other_config   = Auth.get_subject_information_from_identifier(session, userSid);
                userDisplayName     = subj.DisplayName;
                userName            = subj.SubjectName;
                groupMembershipSids = Auth.get_group_membership(session, userSid);
            }
            catch (Failure)
            {
            }
        }
Ejemplo n.º 4
0
        private void GetGroupMembership(Session session)
        {
            try
            {
                groupMembershipSids = Auth.get_group_membership(session, userSid);

                if (groupMembershipSids.Length > MAX_GROUP_LOOKUP)
                {
                    return;
                }

                string[] output = new string[groupMembershipSids.Length];


                for (int i = 0; i < groupMembershipSids.Length; i++)
                {
                    string sid = groupMembershipSids[i];
                    Dictionary <String, String> info = Auth.get_subject_information_from_identifier(session, sid);
                    string name = "";

                    if (info.TryGetValue("subject-displayname", out name))
                    {
                        output[i] = name;
                        continue;
                    }
                    if (info.TryGetValue("subject-name", out name))
                    {
                        output[i] = name;
                        continue;
                    }

                    output[i] = sid;
                }
                groupMembershipNames = output;
            }
            catch (Failure)
            {
            }
        }