• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Выхлоп веб-сервиса

  • Автор темы khisrav
  • Дата начала
K

khisrav

Привет всем.

Есть веб сервис (сделан на VisualStudio2005, язык C#), принимает несколько строк, обрабатывает их и возвращает строку. Вот в таком виде:

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">возвращаемая_строка</string>

А нужно просто в таком:

возвращаемая_строка

Не подскажете, что подкрутить ? Может в Web.Config....

Спасибо откликнувшимся.
 
K

khisrav

СЕРВИС0 отдает запрос СЕРВИСУ1 (моему, код ниже), СЕРВИС1 обрабатывет, отдает СЕРВИСУ2, получает от него ответ, обрабатывает(обработки пока в коде нет) и отдает назад СЕРВИСУ0. Если подскажете что тут не так, буду очень благодарен :) спасибо.


using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Net;
using System.Text;
using System.IO;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Security.Policy;

class CertPolicy : ICertificatePolicy
{
public bool CheckValidationResult(ServicePoint srvPoint, X509Certificate
certificate, WebRequest request, int certificateProblem)
{
return true;
}
}


[WebService(Namespace="My_Service")]


[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service()
{

}

[WebMethod]



public string SendQuery(string duser, string dpass, string cid, string trans, string sum)
{
//объявление переменных
string ready_query;
DateTime dt = DateTime.Now;
string curr_date = String.Concat(dt.Year, dt.Month, dt.Day);
string curr_time = String.Concat(dt.Hour, dt.Minute, dt.Second);
string responce;
string cer_file_path = "d:/cert.cer";


//Формирование строки запроса на СЕРВИС2
ready_query = String.Concat("https://129.9.0.54:7001/xmlinterface.asmx/Payment?ps_id=3222&rrn=", trans,
"&pt=8&date=", curr_date,
"&time=", curr_time,
"&phone=", cid,
"&amount=", sum,
"&currency=RUR");


//создание сертификации из файла-сертификата
System.Security.Cryptography.X509Certificates.X509Certificate Serv_Certificate =
System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile
(cer_file_path);
ServicePointManager.CertificatePolicy = new CertPolicy();


//Отправка запроса на сервер СЕРВИС2 с использованием сертификации
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ready_query);
request.ClientCertificates.Add(Serv_Certificate);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "GET";

//Получение ответа от СЕРВИСА2, запись резуьтата в переменную responce
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
responce = reader.ReadToEnd();


//Возврат ответа СЕРВИСУ0
return responce;

}


}
 
E

etc

Ну так дайте в лоб тому кто вам его такой шлет.
 
E

etc

А что пояснять, находите того кто вам шлет не то что надо и даете ему в лоб, и так до полного просветления.
А то чтож он такой эдакий ...
 
K

khisrav

шлет моя же служба. я думал тут серьёзный форум.
 
E

etc

Если думали так и показывать надо по серьезному, а не тянуть по капле из вас. У нас собственно проблем нет, они есть у вас, раз тему запостили, вот и рассказывайте что да как, а догадываться никто е будет.

Или вы считает ответ -
офигенно серьезным? я нет..
 
Y

Yason

я думал тут серьёзный форум.
Неа, этот форум ни в коем случае не серьёзный, интересные/нетривиальные вопросы тут редкость. 95% пользователей — студенты-лентяи, просящие сделать за них лабы/курсовые, и элементарные задачки. Иногда трудно сдержаться, чтобы не обматерить незнакомого человека, хотя я по жизни спокоен как удав. А etc тут давно, и его это, видимо, уже порядком допекло.

По теме, если мне не изменяет память, правильный веб-сервис по определению получает параметры/отдаёт результаты по протоколу , в основе которого лежит XML. Поэтому если ваш сервис будет отдавать только строку — формально, это уже не веб-сервис.
К тому же, упрощая себе жизнь сейчас за счёт отказа от XML, вы ограничиваете возможность расширения сервиса в будущем.
Стандарты — это хорошо.
 
E

etc

формально, это уже не веб-сервис.
Вот вот, и глядя на вопрос и далее создаеться впечатление, что кто-то что-то путает, или не договаривает. Такого респонса как в вопросе, сервис не пришлет (я так думаю (с) B)). Поэтому и спрашивал - где та самая строка ...
 
K

khisrav

Привет всем! Ура товарищи! Проблема решена - просто переписал прогу как HttpHandler. Реально подсказали, что рою не туда и куда лучше рыть на майкрософтовском форуме какой-то чувак из дальнего зарубежья - дай Бог ему здоровья. И сделал он это одним коротким и очень очень содержательным ответом, не приведя ни одной строки кода.
Насчет будущего и стандарта xml. При возникновении потребности я конечно смогу и снова нарисовать нужный мне веб-сервис, но на данный момент нужно только то, что делает хандлер - такова уж задачка ;)
Спасибо огромноре и низкий поклон старавшимся помочь!
 
E

etc

Ничего не понятно, при чем тут хэндлер .... работая с сервисами надо работать "по их правилам" и все будет ок.
Всетаки вы утаиваете, ну да и фик с ним.
 
K

khisrav

Привет!

ничего не утаиваю - честное слово. По правилам сервиса я работать не могу, потому что уже сделанные (не мной) ресурсы не работают по тем самым правилам.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!