/// <summary>
        /// Gets the new instance of request parameters.
        /// </summary>
        /// <param name="resource">The resource.</param>
        /// <param name="clientId">The client identifier.</param>
        /// <param name="userCredential">The user credential.</param>
        private static object GetNewInstanceOfRequestParameters(string resource, string clientId, UserCredential userCredential)
        {
            var builder              = new StringBuilder();
            var typeOfParameters     = Type.GetType("Microsoft.IdentityModel.Clients.ActiveDirectory.RequestParameters, Microsoft.IdentityModel.Clients.ActiveDirectory");
            var arguments            = new object[] { builder };
            var instanceOfParameters = (Dictionary <string, string>)Activator.CreateInstance(type: typeOfParameters, args: arguments);

            // Prepare request parameters to be sent over the wire
            instanceOfParameters.Add("grant_type", "password");
            instanceOfParameters.Add("resource", resource);
            instanceOfParameters.Add("username", userCredential.UserName);
            instanceOfParameters.AddSecureParameter("password", userCredential.SecurePassword());
            instanceOfParameters.Add("client_id", clientId);

            return(instanceOfParameters);
        }