Skip navigation
Currently Being Moderated

Invoke SOAP-Webservice by C#-Written Client

Jan 13, 2011 12:28 PM

Hi, I'm working with Visual Studio 2010 C#. I'm trying to access a  SOAP-Endpoint of our server. Unfortunatelly I always get error because  of authentification.

 

I added service reference there as described in following msdn doc: http://msdn.microsoft.com/en-us/library/bb386382.aspx

 

Now I have a app.config file which contains settings for connecting SOAP-Endpoint. I feel somewhat is wrong there:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <system.serviceModel>
         <bindings>
             <basicHttpBinding>
                 <binding name="ReadEntriesSoapBinding" closeTimeout="00:01:00"
                     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                     maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                     useDefaultWebProxy="true">
                     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                         maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                     <security mode="TransportCredentialOnly">
                         <transport clientCredentialType="Basic" proxyCredentialType="None"
                             realm="AXIS" />
                         <message clientCredentialType="UserName" algorithmSuite="Default" />
                     </security>
                 </binding>
             </basicHttpBinding>
         </bindings>
         <client>
             <endpoint address="http://****************:8080/soap/services/Calendar/Processes/ReadEntr ies"
                 binding="basicHttpBinding" bindingConfiguration="ReadEntriesSoapBinding"
                 contract="SoapServiceReference.Calendar_Processes_ReadEntries"
                 name="ReadEntries" />
         </client>
     </system.serviceModel>
</configuration>

 

And here is C#-Code:

SoapServiceReference.Calendar_Processes_ReadEntriesClient  client = new  SoapServiceReference.Calendar_Processes_ReadEntriesClient();
SoapServiceReference.XML xml;
SoapServiceReference.DATE end = new SoapServiceReference.DATE();
end.date = DateTime..Today.AddYears(100);
String impairedPersonUID = "**************";
SoapServiceReference.DATE start = new SoapServiceReference.DATE();
start.date = DateTime.Today.AddYears(-1);

 

// Dunno which of them is needed?

client.ClientCredentials.Windows.ClientCredential.UserName = "*********";
client.ClientCredentials.Windows.ClientCredential.Password = "12345678";
client.ClientCredentials.UserName.UserName = "*********";
client.ClientCredentials.UserName.UserName = "12345678";

 

xml = client.invoke(end, impairedPersonUID, start);

 

 

In the last C#-line (client.invoke(...);) I always get error message. Now I get such one:

"Die  HTTP-Anforderung ist beim Clientauthentifizierungsschema "Basic" nicht  autorisiert. Vom Server wurde der Authentifizierungsheader "Basic  realm="AXIS"" empfangen."

 

Translated to English:

"The HTTP request is unauthorized with client authentication scheme  'Anonymous'. The authentication header received from the server was  'Basic realm=\"AXIS\"'."

 

In app.config before I tried some modifications the security-part was:

                    <security mode="None">
                         <transport clientCredentialType="None" proxyCredentialType="None"
                             realm="" />
                         <message clientCredentialType="UserName" algorithmSuite="Default" />
                     </security>

 

 

So... I need your help, what did I wrong? Do you need some informations, then let me know please.

cu Floh

 
Replies
  • Currently Being Moderated
    Jan 17, 2011 7:08 AM   in reply to Floh-VerbaVoice

    I'm the first to admit that I'm not a .net expert, but I've worked on a few small proofs that use c# and LiveCycle.

     

    There are a couple of things that I noticed about your code that are different from the way I've done things in the past:

    • I've always used a Web Reference as opposed to the Service Reference. 
    • Depending on how I've made the call, I've had to specify the message type (blob, MIME, MTOM) in the reference code.  This requires adding the message type identifier to the web service target url (see http://help.adobe.com/en_US/livecycle/9.0/programLC/help/index.htm?con tent=000537.html#1857169)
    • The security settings for the user name and password are set with the web reference object using the .Credentials
    • The user name and password are for the LiveCycle server and therefor needs to be a valid account in the LiveCycle User Manager system.  administrator/password will work for the default system unless your administrator has changed the account (which he should do in production)
    • You'll need to pull the result object out of the returned message.  This will change somewhat depending on what message type you use.

     

     

    I'm not sure which version of LiveCycle you are using, but the API Quickstarts have some good examples for .Net/C# calls.  Have a look at:

    http://help.adobe.com/en_US/livecycle/9.0/programLC/help/index.htm?con tent=000005.html

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points