title: Active Directory user entry, and group entry
body: <p>I'm currently having an issues to where I cannot get my Organizational Unit to be recognized as an argument with creating a new Active Directory user, and assigning them to a OU. It gives me the error, "GetPrincipalContext" takes 1 argument, and I'm lost as what went wrong. If further information if needed, please let me know. </p>
  
  <pre><code>    #region Variables
      private string sdomain = "test";
      private string sdefaultou = "OU=Dackup Users, OU=Dackup, DC=Test, Dc=com";
      private string sdefaultrootOU = "DC=test, DC=com";
      private string sServiceUser = @"ServiceUser";
      private string sServicePassword = "ServicePassword";
      private string sGroup = "Dackup";
      private string sUserName = "LocalTest";
      private string sOU = "Organizational Unit locations";
      #endregion
  
      #region Validate
      public PrincipalContext GetPrincipalContext()//(string sdomain, string sdefaultou, string sservicepassword
      {
          PrincipalContext oPrincipal = new PrincipalContext(ContextType.Domain, sdomain, sdefaultou, ContextOptions.SimpleBind, sServiceUser, sServicePassword);
          return oPrincipal;
      }
  
      public UserPrincipal GetUser(string sUserName)
      {
          PrincipalContext oPrinciple = GetPrincipalContext();
          UserPrincipal oUserprinciple = UserPrincipal.FindByIdentity(oPrinciple, sUserName);
          return oUserprinciple;
      }
  
      public bool IsUserExisting(string sUserName)
      {
          if (GetUser(sUserName) == null)
          {
              return false;
          }
          else
          {
              return true;
          }
      }
  
      /*   public bool ValidateCredential (string sUserName, string sPassword)
      {
          PrincipalContext oprincipalc = "fix"();
          return oprincipalc.ValidateCredentials(sUserName, sPassword);
      } */
  
      public UserPrincipal CreateNewUser(string sOU, string sUserName, string sPassword, string sGivenName, string sSurname)
      {
          if (!IsUserExisting(sUserName))
          {
              PrincipalContext oPrincipalContext = GetPrincipalContext(sOU); //This is where the error occurs
  
              UserPrincipal oUserPrincipal = new UserPrincipal(oPrincipalContext, sUserName, sPassword, true /*Enabled or not*/);
  
              //User Log on Name
              oUserPrincipal.UserPrincipalName = sUserName;
              oUserPrincipal.GivenName = sGivenName;
              oUserPrincipal.Surname = sSurname;
              oUserPrincipal.Save();
  
              return oUserPrincipal;
          }
          else
          {
              return GetUser(sUserName);
          }
      }
  
      public GroupPrincipal GetGroup(string sGroup)
      {
          PrincipalContext oPrincipal = GetPrincipalContext();
          GroupPrincipal ogroup = GroupPrincipal.FindByIdentity(oPrincipal, sGroup);
          return ogroup;
      }
  
      public bool IsUserGroupMember(string sGroup, string sUserName)
      {
          UserPrincipal oUser = GetUser(sUserName);
          GroupPrincipal ogroup = GetGroup(sGroup);
  
          if (oUser != null &amp;&amp; ogroup != null)
          {
              return ogroup.Members.Contains(oUser);
          }
          else
          {
              return false;
          }
      }
  
      public bool AddUserToGroup(string sUserName, string sGroup)
      {
          try
          {
              UserPrincipal oUserPrincipal = GetUser(sUserName);
              GroupPrincipal oGroupPrincipal = GetGroup(sGroup);
  
              if (oUserPrincipal != null &amp;&amp; oGroupPrincipal != null)
              {
                  if (!IsUserGroupMember(sUserName, sGroup))
                  {
                      oGroupPrincipal.Members.Add(oUserPrincipal);
                      oGroupPrincipal.Save();
                  }
              }
              return true;
          }
          catch
          {
              return false;
          }
      }
  
      private void button1_Click(object sender, EventArgs e)
      {
          CreateNewUser();
      }
  }
  #endregion
  </code></pre>