Lost in history

Blogs focused on WWSAPI: the new native web services stack from Microsoft

Browse by Tags

Tagged Content List
  • Blog Post: Common WWSAPI errors: property value set incorrectly

    As mentioned in my previous post , WWSAPI follows a common pattern to set properties (which in most cases are just configuration settings). Each property structure consists of three fields: id , value and valueSize . The field id is an enum value of the property. The enum value has a corresponding type...
  • Blog Post: Common WWSAPI errors: A NULL WS_STRUCT_DESCRIPTION was specified.

    When you use WsUtil to generate stub code and then work with the generated structures, you may get E_INVALIDARG when making the call to the service and, with WWSAPI tracing turned on, see the error message “ A NULL WS_STRUCT_DESCRIPTION was specified. ”. WS_STRUCT_DESCRIPTION is one of the WWSAPI...
  • Blog Post: WWSAPI to WCF interop 11: security binding templates

    In my previous post on WsUtil , I explained how the generated helper functions can simplify the creation of WS_SERVICE_PROXY and WS_SERVICE_ENDPOINT. In both of these functions, the first parameter is a pointer to a same binding template. When no security is used in the binding, the template will be...
  • Blog Post: Common WWSAPI errors: usage asserts

    One of the design principles of WWSAPI is to be very stringent at the API contract, as we believe ambiguous or loose API contract does not help developers write high quality applications. Being stringent means not only to document the API contract clearly, but also to enforce at runtime that the contract...
  • Blog Post: Common WWSAPI errors: wrong property value size

    WWSAPI properties are designed to control the behavior of the WWSAPI objects like service proxy, channel, XML reader/writer, etc. Each property has a property id, an associated value type, a target object and allowed actions. All property structures have the same set of fields: a property id, a pointer...
  • Blog Post: WWSAPI to WCF interop 10: WsUtil.exe, the silver bullet

    In my previous post on interoperating with WCF BasicHttpBinding endpoint , I explained that you had to set the channel properties to match SOAP version and addressing version on the server side. Wouldn’t it be great if you don’t have to do all that? That’s one of the goal of building WsUtil.exe, the...
  • Blog Post: Common WWSAPI errors: addressing version mismatch

    WWSAPI supports two WS-Addressing versions: the existing W3C recommendation version ( 1.0 ) and the older 2004/08 version ( 0.9 ). WS-Addressing defines a set of SOAP headers to describe the message recipient, targeted action and some other basic messaging information. When HTTP transport is used, WWSAPI...
  • Blog Post: Common WWSAPI errors: SOAP version mismatch

    There are two versions of SOAP supported by WWSAPI and most other web services stacks: SOAP 1.1 and SOAP 1.2 . Although the basic message layout in the two SOAP versions is the same (Header and Body inside Envelope), there are three main differences: the namespace, the content type for HTTP binding and...
  • Blog Post: WWSAPI RC bits for downlevel platforms are available!

    Not many people are aware of our commitments to ship WWSAPI to downlevel platforms. Nikola just sent out an email annoucing the availability of the RC bits for downlevel platforms: https://connect.microsoft.com/WNDP/Downloads/DownloadDetails.aspx?DownloadID=18901 . There are bits for XP SP3, Windows...
  • Blog Post: LiveID support in WWSAPI on Win7

    In Windows 7, LiveID can be used with WWSAPI in two scenarios: 1. SSPI over TCP ( WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING ) with the default SPNEGO package : on both client and server 2. HTTP Negotiate header authentication ( WS_HTTP_HEADER_AUTH_SECURITY_BINDING ): on the client side only ...
  • Blog Post: More on HTTP header authentication

    My previous post on header authentication comparison between WWSAPI and WCF mentioned the impersonation level. Here is a bit more detail as people still seem to be caught by surprise due to this difference. I mentioned that WCF client could set the impersonation level, but I didn’t mention the default...
  • Blog Post: WWSAPI to WCF interop 9: secure conversation bootstrapped by Kerberos AP-REQ token

    In my post on WWSAPI federation support , I explained how to set up secure conversation on the WWSAPI client to work with a WCF server using WSFederationHttpBinding. In this post, I’ll show how to use secure conversation without federation. Secure conversation can be helpful in reducing the payload size...
  • Blog Post: One note about running the examples using HTTP

    It turns out that with the example code as is, starting a server at an HTTP or HTTPS address does not require the process to be run as an admin (elevated on Vista and Win7). No namespace needs to be reserved either. This is because the code uses localhost as host name, which will only match traffic sent...
  • Blog Post: A simple way to run the WWSAPI Kerberos over SSL samples

    The Kerberos over SSL samples (like the calculator one ) demonstrate WWSAPI mixed mode security that matches the WCF’s KerberosOverTransport authentication mode. In this mode, the Kerberos AP-REQ ticket is wrapped in a WS-Security header for client and server authentication. There is no negotiation here...
  • Blog Post: One-time set up for WWSAPI security examples

    Nikola asked me to write a post on how to set up machine to run our security examples. Here it goes. To run WWSAPI security examples (like the one doing Basic authentication over SSL ), you need to set up the client and server certificates for SSL and a local user account for HTTP header authentication...
  • Blog Post: WWSAPI to WCF interop 8: invalid XML characters (part 2)

    In part 1 of this topic, I explained that some Unicode characters would be rejected by WWSAPI’s XML reader and writer because they are not considered legal in XML spec. There is an XML reader property and an XML writer property to allow such characters. Unfortunately that won’t work in all cases and...
  • Blog Post: WWSAPI to WCF interop 8: invalid XML characters (part 1)

    Although all Unicode characters can be carried in XML document, not all characters are considered legal according to XML 1.0 spec , the version used by SOAP and supported by WWSAPI. As you can see in the production copied below, ASCII characters under 32 except tab, carriage return and line feed are...
  • Blog Post: HTTP header authentication gotcha

    So I was testing WWSAPI client to ASMX interop. After getting the basic Hello World scenario working, I decided to require Windows authentication on the web application and impersonate the client identity. Then I reran the client without changing the client code to enable HTTP header authentication....
  • Blog Post: 403 Forbidden due to client certificate issue

    Just when I thought I had seen all possible 403 Forbidden errors and could pinpoint the 403 issues without looking into traces, I found myself surprised by another 403 error. I was testing a WWSAPI client to WCF server interop scenario. Only this time the WCF server was hosted on IIS 7.0 on Windows Server...
  • Blog Post: WWSAPI to WCF Interop 7: HTTP header authentication (part 3) - used in BasicHttpBinding with transport credential only

    In my previous post I explained how to do HTTP header authentication protected by SSL in WWSAPI. In this post, I’ll show how to do header authentication without SSL. In WCF, this mode is called TransportCredentialOnly and is only available in BasicHttpBinding. (Note that this mode is not secure as the...
  • Blog Post: WWSAPI to WCF Interop 7: HTTP header authentication (part 2) - used in WSHttpBinding with transport security

    In WCF’s standard bindings, HTTP header authentication can be used in WSHttpBinding with security mode Transport. In this security mode, the client credential type can be set to either Basic, Digest, Ntlm or Windows (Negotiate scheme) to enable HTTP header authentication. In this post, I'll use Windows...
  • Blog Post: WWSAPI to WCF Interop 7: HTTP header authentication (part 1) - comparison

    Just like WCF, WWSAPI supports Basic, Digest, NTLM and Negotiate HTTP header authentication (If you are not familiar with HTTP header authentication, you can read more details about it at Nicholas Allen’s HTTP authentication post ). The two implementations are very similar, but there are also many differences...
  • Blog Post: Channel 9 video on WWSAPI

    In case you haven't see it, check out the Channel 9 video on WWSAPI .
  • Blog Post: WWSAPI to WCF interop 6: NetTcpBinding with transport security

    NetTcpBinding provides a more efficient way to send/receive SOAP messages than HTTP does. The SOAP envelopes are transferred in binary format and an XML dictionary is built over the TCP session to help further reduce the payload size. NetTcpBinding supports all three security modes (message, transport...
  • Blog Post: WWSAPI to WCF interop 5: WSFederationHttpBinding with mixed mode security

    WCF endpoints with WSFederationHttpBinding accept SAML tokens issued by trusted Security Token Services (STS, the Issuing Party, or IP). The first thing that should be noted with WSFederationHttpBinding is that secure conversation (specifically, the February 2005 version) is turned on and no knob is...
Page 1 of 2 (29 items) 12