Невежественный о том, как создать SOAP <wsse:Security> заголовок

Если вы определили Схему аутентификации для типа схемы «Пользовательская», вы заметите следующее во встроенной справке «Имя функции аутентификации».

Эта функция должна возвращать логическое значение для процедуры входа в систему, которая ее вызывает. Он имеет 2 входных параметра «p_username» и «p_password», которые можно использовать для доступа к значениям, введенным конечным пользователем на странице входа в систему.

blockquote>

Определение apex_authentication.login не соответствует вашей попытке - вы не вызывали свою собственную функцию.

Действительно ли модель безопасности должна принимать «команду»? Это жизненно важно для установления личности или что-то, что может быть назначено после входа в систему?

Что касается upper(pass), то, хотя это может быть не «окончательный код», это показывает, что вы начинаете с задней ноги - пароли в виде открытого текста даже не должны его составлять, ИМХО.

12
задан Sergej Andrejev 9 April 2009 в 17:15
поделиться

3 ответа

Как правило, очень легко добавить SOAP-заголовок к вашему веб-прокси-серверу в .Net. Вот краткий пример кода.

Создайте новый заголовок SOAP

using System.Web.Services.Protocols;

public class SoapAuthHeader : SoapHeader
{
public string Username;
public string Password;
}

В вашем прокси-классе веб-службы:

public class MyWebServicesProxy : System.Web.Services.Protocols.SoapHttpClientProtocol {

    public SoapAuthHeader AuthHeader;

    ...

}

А затем использовать:

SoapAuthHeader authHeader = new SoapAuthHeader();
authHeader.Username = "username";
authHeader.Password = "password";

MyWebServicesProxy myProxy = new MyWebServicesProxy();
myProxy.AuthHeader = authHeader;

Редактировать: Есть и другие способы, и у Microsoft есть Библиотека WSE , включающая в себя WS-Security, дает гораздо больше функциональных возможностей, чем простой пример выше. Если вам нужны токены Kerberos или подпись сертификата в заголовке SOAP, то это путь. если вам просто необходимо добавить простое имя пользователя и пароль для веб-службы, работающей по протоколу SSL, тогда может понадобиться только пример.

Редактировать: Быстрый всплеск на ВФБ В начале этого десятилетия, когда веб-сервисы собирались захватить мир, кучка отраслевых игроков (Microsoft, IBM, Sun и т. Д.) Собрались вместе, чтобы придумать стандартные способы ведения дел над ними. , Образовавшееся тело было ОАЗИС . С тех пор Microsoft выпустила несколько версий своей библиотеки WSE для поддержки некоторых спецификаций, но, что интересно, они никогда не были включены в .Net Framework, хотя первая версия была опубликована в 2003 году.

очень популярный и, на мой взгляд, отличный способ интеграции между различными интернет-приложениями немного потерял популярность. Одна из причин, несомненно, заключается в том, что AJAX и веб-сервисы не были лучшими помощниками, хотя и улучшились. Веб-сервисы также становятся довольно сложными, как только вы начинаете включать все дополнительные спецификации sWSE, и одной из вещей, которые должны были решить веб-сервисы, была сложность в других протоколах RPC, CORBA и т. Д. Тем временем REST приобрел большую популярность за счет веб-сервисов и библиотек AJAX часто предпочитают его.

Веб-сервисы не исчезнут в ближайшее время какими-либо средствами, но они, вероятно, также не собираются захватывать Мир в ближайшее время.

5
ответ дан 2 December 2019 в 06:27
поделиться

Возможно, потому что тогда имя должно быть длинным IsNotNullAndNotEmpty , чтобы быть конкретным.

m знаю) используйте новый экземпляр с соответствующей информацией для аутентификации, когда вам нужно.

У меня есть большинство пути, используя вместо этого SoapHeader , добавляя соответствующий атрибут к каждому метод веб-службы, а также соответствующее поле / свойство с экземпляром требуемого заголовка - но сериализация SOAP в настоящее время доставляет мне головную боль с точки зрения указания правильных имен элементов (с пространствами имен). Это то, о чем я планировал спросить других, когда у меня будет время.

Извините, что не могу дать вам полный ответ - а также извинения за отсутствие кода, он принадлежит компании, а не мне - но, надеюсь, это, по крайней мере, даст вам отправную точку.

Мы получили большую часть способа, используя вместо этого SoapHeader , добавив соответствующий атрибут к каждому методу веб-службы, а также соответствующее поле / свойство с экземпляром требуемого заголовка - но Сериализация SOAP в настоящее время доставляет мне головную боль с точки зрения определения правильных имен элементов (с пространствами имен). Это то, о чем я планировал спросить других, когда у меня будет время.

Извините, что не могу дать вам полный ответ - а также извинения за отсутствие кода, он принадлежит компании, а не мне - но, надеюсь, это, по крайней мере, даст вам отправную точку.

Мы получили большую часть способа, используя вместо этого SoapHeader , добавив соответствующий атрибут к каждому методу веб-службы, а также соответствующее поле / свойство с экземпляром требуемого заголовка - но Сериализация SOAP в настоящее время доставляет мне головную боль с точки зрения определения правильных имен элементов (с пространствами имен). Это то, о чем я планировал спросить других, когда у меня будет время.

Извините, что не могу дать вам полный ответ - а также извинения за отсутствие кода, он принадлежит компании, а не мне - но, надеюсь, это, по крайней мере, даст вам отправную точку.

добавление соответствующего атрибута к каждому методу веб-службы, а также соответствующего поля / свойства с экземпляром требуемого заголовка - но сериализация SOAP в настоящее время доставляет мне головную боль с точки зрения указания правильных имен элементов (с пространствами имен). Это то, о чем я планировал спросить других, когда у меня будет время.

Извините, что не могу дать вам полный ответ - а также извинения за отсутствие кода, он принадлежит компании, а не мне - но, надеюсь, это, по крайней мере, даст вам отправную точку.

добавление соответствующего атрибута к каждому методу веб-службы, а также соответствующего поля / свойства с экземпляром требуемого заголовка - но сериализация SOAP в настоящее время доставляет мне головную боль с точки зрения указания правильных имен элементов (с пространствами имен). Это то, о чем я планировал спросить других, когда у меня будет время.

Извините, что не могу дать вам полный ответ - а также извинения за отсутствие кода, он принадлежит компании, а не мне - но, надеюсь, это, по крайней мере, даст вам отправную точку.

6
ответ дан 2 December 2019 в 06:27
поделиться

Существует настраиваемая привязка с открытым исходным кодом ClearUserNameBinding, эта привязка помогает передавать UserNameToken как clearText по Http. Это помогло мне, когда нужно было использовать веб-службу на основе Java с помощью клиента WCF.

http://code.google.com/p/wcf-clear-username-binding/ http://webservices20.blogspot.com/2008/11/introduction-wcf-clearusernamebinding.html

1
ответ дан 2 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: