#c# #.net #selenium #automated-tests #salesforce
Вопрос:
Когда я запускаю код входа в песочницу Salesforce, я получаю сообщение об ошибке ниже:
Сообщение: Система.Исключение : {«ошибка»:»недопустимо»,»ошибка описания»:»ошибка аутентификации»}
Ниже приведен код, который возвращает проблему:
private static void Authorize(AuthorizationData authData, string userName, string password) { if (authData == null) throw new ArgumentNullException("authData"); if (string.IsNullOrWhiteSpace(userName)) throw new ArgumentNullException("_userName"); if (string.IsNullOrWhiteSpace(password)) throw new ArgumentNullException("_password"); using (HttpClient restClient = new HttpClient()) { FormUrlEncodedContent encodedContent = new FormUrlEncodedContent(new Dictionarylt;string, stringgt; { { "grant_type", "password" }, { "client_id", authData.ConsumerKey }, { "client_secret", authData.ClientSecret }, { "username", userName }, { "password", password } }); using (HttpContent httpContent = encodedContent) { using (HttpResponseMessage response = restClient.PostAsync(authData.AuthorizationUrl, httpContent).Result) { if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { string errorMessage = response.Content.ReadAsStringAsync().Result; response.Dispose(); httpContent.Dispose(); restClient.Dispose(); throw new Exception(errorMessage); } string strResponse = response.Content.ReadAsStringAsync().Result; JObject jsonResponse = JObject.Parse(strResponse); authData.SetAuthorizationToken(jsonResponse["access_token"].ToString()); authData.SetInstanceUrl(jsonResponse["instance_url"].ToString()); } } } }
Всякий раз, когда он попадет в код на encodedContent, заголовок будет пустым, и он отправит запрос об ошибке с HTTP 400. Я проверил логин вручную, и с токеном все было в порядке. Но когда я запущу тестовый сценарий, он выдаст ошибку.