Требуется помощь веб-службы - PullRequest
0 голосов
/ 17 февраля 2012

Я использую C # в VS2010, и мне нужна помощь с веб-приложением. У меня нет большого опыта работы с веб-сервисами. Мне был передан URL-адрес веб-службы, содержащей методы, необходимые для создания части приложения для входа в систему. Нет документации. У меня есть часть входа работает, хотя. Тогда я застреваю. При успешном входе в систему мне нужно вызвать другой метод, который возвращает список (или объект?) Приложений, к которым аутентифицированный пользователь имеет доступ. Например, элементы, которые он возвращает для себя (имя, описание, местоположение) для приложения 157. Я просто хочу посмотреть, существует ли 1 приложение из 157.

Мне не повезло за 3 дня. Мне удалось выгрузить результаты в ArrayList и сделать этот список источником для GridView, но я не знаю, как просто перебрать результаты. Я не включаю какой-либо код на этом этапе, потому что я не думаю, что мой подход правильный, и хочу знать, как вы все это сделаете? Конвертировать полученный объект в XML, может быть? Я ценю ваши отзывы и советы.

ОБНОВЛЕНИЕ:

protected void Button_Click(object sender, EventArgs e)
    {
        ServiceReference1.Identity usr = new ServiceReference1.Identity();
        loginService.AuthenticationService auth = new loginService.AuthenticationService();
        loginService.AuthenticationService auth = new loginService.AuthenticationService();
        auth.Login(TextBox1.Text, TextBox2.Text, "10.55.31.91");
        List<object> roles = new List<object>(auth.GetIdentityRoles(TextBox1.Text));
        IEnumerable myEnum = roles;
        IEnumerator myEnumerator = myEnum.GetEnumerator(); //Getting the Enumerator
        myEnumerator.Reset(); //Position at the Beginning
        while (myEnumerator.MoveNext()) //Till not finished do print
        {
            Response.Write(myEnumerator.Current.ToString());
        }
    }

Теперь, если во время отладки я наведу курсор на «роли» в строке 6, я смогу увидеть поле, которое хочу найти. Я хочу знать, если «Name» содержит «Administrator», но все мои примеры возвращают только «loginService.Role» в строке 13. Он просто записывает loginService.Roles 20 раз. Мне нужно спуститься на следующий уровень. Это пятница, и у меня день рождения, пожалуйста, помогите мне, лол.

[+] roles = Count = 20
[+] {loginService.Role}
    Name = "Administrator"
    nameField = "Administrator"

1 Ответ

1 голос
/ 17 февраля 2012

Прежде всего, вы создаете правильный прокси-класс клиента, устанавливая сначала ссылку на службу?

Используйте Visual Studio Add Service Reference, щелкнув правой кнопкой мыши узел References в Solution Explorer для проекта и выбрав «Add Service Reference». Вы должны ввести URL-адрес следующим образом:

http://domain.com/Servicename.asmx?WSDL

Документ WSDL, возвращаемый службой, используется Visual Studio для создания прокси-класса. Затем вы можете проверить этот класс, чтобы увидеть все методы, их сигнатуры и типы.

Почти все веб-службы настроены на возврат этого XML-документа WSDL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...