public static List<Student> getMatchingStudents(string givenName, string surname) { List<Student> matches = new List<Student>(); using (PrincipalContext pc = new PrincipalContext( ContextType.ApplicationDirectory, "ailds01v.home.ad1.sou.edu:1556", "CN=Users,CN=University", ContextOptions.Negotiate | ContextOptions.SecureSocketLayer)) { SouPerson findPerson = new SouPerson(pc); findPerson.GivenName = givenName; findPerson.Surname = surname; PrincipalSearcher searcher = new PrincipalSearcher(findPerson); PrincipalSearchResult<Principal> results = searcher.FindAll(); foreach (SouPerson person in results) { if (person.souStudent == true) { Student s = new Student(); s.setKey1(person.souStudentKey1); s.setKey2(person.souStudentKey2); s.setUsername(person.Name); matches.Add(s); } } return matches; } }
/// <summary> /// Tests whether or not givenName, surname, id and dob match a user /// </summary> /// <param name="givenName">Last name</param> /// <param name="surname">First name</param> /// <param name="id">SSN or 940</param> /// <param name="dob">Date of birth</param> /// <returns> /// username if a match is found /// empty string if a match is not found /// </returns> public static string isValidKey(string givenName, string surname, string id, string strRawDOB) { string key1, key2, username; List<Student> matches; Student s = new Student(); String dob = ""; givenName = givenName.Trim(); surname = surname.Trim(); // Parse Calendar picker date into MMDDYY try { DateTime objDOB = DateTime.Parse(strRawDOB); dob = objDOB.ToString("MMddyy"); } catch { // Try MMddyy try { DateTime objDOB = DateTime.ParseExact(strRawDOB, "MMddyy", null); dob = objDOB.ToString("MMddyy"); } catch { try { // Try MMddyyyy DateTime objDOB = DateTime.ParseExact(strRawDOB, "MMddyyyy", null); dob = objDOB.ToString("MMddyy"); } catch { return ""; } } } matches = LDS.getMatchingStudents(givenName, surname); foreach (Student m in matches) { if (m.isKey(id, dob)) { log.Debug(String.Format("Student Key is valid for {0}", m.getUsername())); return m.getUsername(); } else { log.Debug(String.Format("Student Key is invalid for {0}", m.getUsername())); } } return ""; }