Есть веб-сервис написанный на 1С, опубликован на Апаче.
При попытке вызова его метода пишет:
Запрос HTTP не разрешен для схемы проверки подлинности клиента "Anonymous". От сервера получен заголовок проверки подлинности "Basic realm="1C:Enterprise 8.2"".
Оно логично, т.к. надо сделать авторизацию, иначе 1С не пустит.
Не понятно только как авторизацию сделать.
Код вида, не помогает:
srvTSD.TSDPortTypeClient ws = new srvTSD.TSDPortTypeClient("TSDSoap","
http://localhost/tsd/ws/wsTSD.1cws?wsdl");
ws.ClientCredentials.UserName.UserName = "web";
ws.ClientCredentials.UserName.Password = "1";
ws.ChannelFactory.Credentials.UserName.UserName = "web";
ws.ChannelFactory.Credentials.UserName.Password = "1";
ws.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification;
ws.ClientCredentials.Windows.ClientCredential.UserName = "web";
ws.ClientCredentials.Windows.ClientCredential.Password = "1";
ws.ClientCredentials.SupportInteractive = true;
ws.Open();
Подскажите чего делать?
Здравствуйте, wraithik, Вы писали:
W>Есть веб-сервис написанный на 1С, опубликован на Апаче.
W>При попытке вызова его метода пишет:
W>W>Запрос HTTP не разрешен для схемы проверки подлинности клиента "Anonymous". От сервера получен заголовок проверки подлинности "Basic realm="1C:Enterprise 8.2"".
W>Оно логично, т.к. надо сделать авторизацию, иначе 1С не пустит.
W>Не понятно только как авторизацию сделать.
Может так?
http://msdn.microsoft.com/en-us/library/ms733775.aspx
Вот здесь еще немного:
http://www.forum.mista.ru/topic.php?id=661110
Прочитал, не помогло.
Сделал так:
System.ServiceModel.EndpointAddress ep = new System.ServiceModel.EndpointAddress("http://localhost/tsd/ws/wsTSD.1cws?wsdl");
System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.Security.Mode =System.ServiceModel.BasicHttpSecurityMode.TransportWithMessageCredential;
binding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Basic;
srvTSD.TSDPortTypeClient ws = new srvTSD.TSDPortTypeClient(binding, ep);
Он захотел HTTPS. А мне надо через HTTP.
Указанная схема URI "http" недопустима. Ожидалась "https".
Имя параметра: via
Здравствуйте, wraithik, Вы писали:
W>Он захотел HTTPS. А мне надо через HTTP.
W>W>Указанная схема URI "http" недопустима. Ожидалась "https".
W>Имя параметра: via
Может вы используете WCF вместо обычного веб-сервиса?
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Здравствуйте, wraithik, Вы писали:
W>>Он захотел HTTPS. А мне надо через HTTP.
W>>W>>Указанная схема URI "http" недопустима. Ожидалась "https".
W>>Имя параметра: via
N_C>Может вы используете WCF вместо обычного веб-сервиса?
Нет, веб-сервис на 1С писан, она про такие умные слова, как WCF, не знает
System.ServiceModel.EndpointAddress ep = new System.ServiceModel.EndpointAddress("
http://localhost/tsd/ws/wsTSD.1cws");
System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Basic;
srvTSD.TSDPortTypeClient ws = new srvTSD.TSDPortTypeClient(binding, ep);
ws.ClientCredentials.UserName.UserName = "web";
ws.ClientCredentials.UserName.Password = "1";
ws.Open();