Da_smokes, самая важная часть в том, что вы получаете авторизацию, я думаю. Разве вы не можете одновременно работать на базе и на базе NTLM, не ломая приложение для iPhone? Если затем вы можете получить кредиты для формы из Android, чтобы авторизовать сеанс, а затем перенаправить приложение на защищенные страницы / веб-службы.
ледует из заголовка, мы ищем способ доступа к веб-службе .NET 3.5, которая находится за встроенной аутентификацией Windows (NTLM).
Всю неделю мы искали в интернете и на этом форуме, и нам еще предстоит найти решение этой проблемы.
Мы пробовали, DefaultHttpConnections, различные варианты HttpPost, HttpGet и т. Д.
Однако мы пытаемся аутентифицировать себя, мы сталкиваемся с этим
SSLHandshakeException
или же
Authentication scheme ntlm not supported
Authentication error: Unable to respond to any of these challenges:
ntlm=WWW-Authenticate: NTLM, negotiate=WWW-Authenticate: Negotiate
Аутентификация IIS устанавливается следующим образом:
Страница, к которой мы пытаемся получить доступ, является .aspx в подпапке сайта по умолчанию, и у нас нет предварительных прав, и при этом не безопасно сменить аутентификацию на сайт по умолчанию.
Я знаю, что у многих других в интернете есть подобные проблемы.
Кроме того, разрабатываемое нами приложение не должно использовать веб-представления.
Любые конструктивные указания о том, как решить эту проблему, будут высоко оценены. Заранее спасибо.
ОБНОВИТЬ: Теперь мы изменили сервис для выполнения базовой и ntlm аутентификации.
Когда мы запускаем приведенный ниже код на тестовом сервере localhost, мы получаем правильный ответ, у localhost нет какого-либо механизма аутентификации. Ответ следующим образом:
<soap:Body>
<FooResponse xmlns="uri:FlexAPI">
<FooResult>
<typeFooBar>
<FooNumber>4545</FooNumber>
<BarNumber>1</BarNumber>
</typeFooBar>
</FooResult>
</FooResponse>
</soap:Body>
тем не мение, Когда мы запускаем код ниже на нашем аутентифицированном сервере, мы получаем это.
org.xmlpull.v1.XmlPullParserException: ожидается: START_TAG {http://schemas.xmlsoap.org/soap/envelope/} Конверт (позиция: START_TAG @ 2: 44 в java.io.InputStreamReader@4054b398)
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("Foo", Bar.getText().toString());
request.addProperty("Foo", Bar.getText().toString());
request.addProperty("Foo", Bar() );
request.addProperty("Foo", Bar.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.encodingStyle = "utf-8";
envelope.implicitTypes = false;
String myUrlz= "http://" + myUrl.getText().toString() +"/Foo/Bar.asmx";
HttpTransportBasicAuth auth = new HttpTransportBasicAuth(myUrlz, "Foo", "Bar");
auth.debug = true;
try
{
auth.call(SOAP_ACTION, envelope); // Fails on this line.
System.out.println("Dump" + auth.responseDump);
// all the other stuff.....
}
catch (FooException Bar)
{
// ¯\_(ツ)_/¯
}
Таким образом, мы получаем ответ html вместо xml при доступе к защищенному сервису. И да, служба localhost и услуга sharp точно совпадают, за исключением части аутентификации.