Я пытаюсь заменить учетные данные клиента на заголовок Bearer Token
в службе SOAP. Я использовал поставщика справочных услуг веб-служб WCF и сделал tnet ядро в сравнении с 2019. С заголовками REST и HttpWebRequest. Добавьте все в порядке. У меня нет опыта в C#, и это не то, что я ищу бесплатное решение, но в настоящее время я принимаю любую помощь, которую могу получить, поэтому, пожалуйста, прокомментируйте ..
/*
* client.ClientCredentials.UserName.UserName = Creds.UserName;
* client.ClientCredentials.UserName.Password = Creds.Password;
*/
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
/*
* httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(client.ClientCredentials.UserName.UserName + ":" + client.ClientCredentials.UserName.Password));
*/
//String auth = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
//httpRequestProperty.Headers.Add("Authorization", "Bearer " + auth);
//httpRequestProperty.Headers.Add("Bearer " + auth);
//httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Bearer " + "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
//httpRequestProperty.Headers["Authorization"] = "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
//httpRequestProperty.Headers["Bearer"] = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
MessageHeader usernameTokenHeader = MessageHeader.CreateHeader("Bearer", "https://api.lantmateriet.se/distribution/produkter/taxering/v1.7", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
OperationContext.Current.OutgoingMessageHeaders.Add(usernameTokenHeader);
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
Ответ следующий:
System.ServiceModel.Security.MessageSecurityException: 'The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Basic realm="auth"'.'