Loading ...
Sorry, an error occurred while loading the content.

SOAP Header Namespace/Prefix problem in C# Client

Expand Messages
  • billyraykidwell
    Hello all, I am new to this list but it looks like I may be in the right place. I am writing a C# client that makes a call to a Java Web Service (implemented
    Message 1 of 11 , Apr 19, 2003
    • 0 Attachment
      Hello all, I am new to this list but it looks like I may be in the
      right place. I am writing a C# client that makes a call to a Java
      Web Service (implemented using WebMethods). The service uses a SOAP
      Header to authenticate the user. Here is what the header tags should
      look like:

      <soap:Header>
      <saml:Assertion MajorVersion="1" MinorVersion="0" Issuer="CAS"
      AssertionID="1234567890" IssueInstant="2003-04-18T22:53:03.9160448-
      04:00"
      xmlns="http:Acord.org/Life/2/"
      xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="urn:oasis:names:tc:SAML:1.0:assertion">

      <saml:ApplicationSubjectStatement>
      <saml:Subject>
      <saml:NameIdentifier>test</NameIdentifier>
      <saml:SubjectConfirmation>
      <saml:ConfirmationMethod>Password</ConfirmationMethod>
      <ds:KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <ds:KeyValue>testkey</ds:KeyValue>
      </ds:KeyInfo>
      </saml:SubjectConfirmation>
      </saml:Subject>
      </saml:ApplicationSubjectStatement>
      </saml:Assertion>
      </soap:Header>

      I can get my code to put prefixes on everything except the Assertion
      tags by using the XmlNamespaceDeclarationsAttribute in the Assertion
      class like so...

      [XmlRoot( ElementName = "Assertion", IsNullable=false,
      Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
      public class Assertion : System.Web.Services.Protocols.SoapHeader
      {
      public Assertion()
      {
      subjectStatement = new SAML.SubjectStatement();
      this.InitNamespaces();
      }

      [XmlNamespaceDeclarations]
      XmlSerializerNamespaces xmlns;

      private void InitNamespaces()
      {
      xmlns = new XmlSerializerNamespaces();
      xmlns.Add
      ("", "http://Acord.org/Life/2/");
      xmlns.Add
      ("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
      xmlns.Add
      ("ds", "http://www.w3.org/2000/09/xmldsig#"");
      }
      ...

      Can anybody help?

      Thanks in advance,

      Bill
    • Simon Fell
      As long as the element is in the correct namespace, it doesn t matter what (if any) prefix is used, e.g.
      Message 2 of 11 , Apr 19, 2003
      • 0 Attachment
        As long as the element is in the correct namespace, it doesn't matter
        what (if any) prefix is used, e.g.
        <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
        and
        <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
        and
        <foo:Assertion xmlns:foo="urn:oasis:names:tc:SAML:1.0:assertion">

        should be treated the same.

        Cheers
        Simon
        www.pocketsoap.com

        On Sat, 19 Apr 2003 15:57:04 -0000, in ws you wrote:

        >Hello all, I am new to this list but it looks like I may be in the
        >right place. I am writing a C# client that makes a call to a Java
        >Web Service (implemented using WebMethods). The service uses a SOAP
        >Header to authenticate the user. Here is what the header tags should
        >look like:
        >
        ><soap:Header>
        ><saml:Assertion MajorVersion="1" MinorVersion="0" Issuer="CAS"
        >AssertionID="1234567890" IssueInstant="2003-04-18T22:53:03.9160448-
        >04:00"
        >xmlns="http:Acord.org/Life/2/"
        >xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
        >xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
        >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        >xsi:schemaLocation="urn:oasis:names:tc:SAML:1.0:assertion">
        >
        ><saml:ApplicationSubjectStatement>
        ><saml:Subject>
        ><saml:NameIdentifier>test</NameIdentifier>
        ><saml:SubjectConfirmation>
        ><saml:ConfirmationMethod>Password</ConfirmationMethod>
        ><ds:KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        ><ds:KeyValue>testkey</ds:KeyValue>
        ></ds:KeyInfo>
        ></saml:SubjectConfirmation>
        ></saml:Subject>
        ></saml:ApplicationSubjectStatement>
        ></saml:Assertion>
        ></soap:Header>
        >
        >I can get my code to put prefixes on everything except the Assertion
        >tags by using the XmlNamespaceDeclarationsAttribute in the Assertion
        >class like so...
        >
        >[XmlRoot( ElementName = "Assertion", IsNullable=false,
        > Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
        >public class Assertion : System.Web.Services.Protocols.SoapHeader
        >{
        > public Assertion()
        > {
        > subjectStatement = new SAML.SubjectStatement();
        > this.InitNamespaces();
        > }
        >
        > [XmlNamespaceDeclarations]
        > XmlSerializerNamespaces xmlns;
        >
        > private void InitNamespaces()
        > {
        > xmlns = new XmlSerializerNamespaces();
        > xmlns.Add
        > ("", "http://Acord.org/Life/2/");
        > xmlns.Add
        > ("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
        > xmlns.Add
        > ("ds", "http://www.w3.org/2000/09/xmldsig#"");
        > }
        >...
        >
        >Can anybody help?
        >
        >Thanks in advance,
        >
        >Bill
        >
        >
        >
        >-----------------------------------------------------------------
        >This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues. Please stay on-topic.
        >
        >To unsubscribe from this group, send an email to:
        >soapbuilders-unsubscribe@yahoogroups.com
        >
        >
        >
        >Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
        >
      • billyraykidwell
        I see, but my problem is that Assertion has NO prefix, but the other elements have the correct prefixes, to clarify, here is the output that I currently get...
        Message 3 of 11 , Apr 19, 2003
        • 0 Attachment
          I see, but my problem is that Assertion has NO prefix, but the other
          elements have the correct prefixes, to clarify, here is the output
          that I currently get...

          > ><soap:Header>
          > ><Assertion MajorVersion="1" MinorVersion="0" Issuer="CAS"
          > >AssertionID="1234567890" IssueInstant="2003-04-18T22:53:03.9160448-
          > >04:00"
          > >xmlns="http:Acord.org/Life/2/"
          > >xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
          > >xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
          > >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          > >xsi:schemaLocation="urn:oasis:names:tc:SAML:1.0:assertion">
          > >
          > ><saml:ApplicationSubjectStatement>
          > ><saml:Subject>
          > ><saml:NameIdentifier>test</NameIdentifier>
          > ><saml:SubjectConfirmation>
          > ><saml:ConfirmationMethod>Password</ConfirmationMethod>
          > ><ds:KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
          > ><ds:KeyValue>testkey</ds:KeyValue>
          > ></ds:KeyInfo>
          > ></saml:SubjectConfirmation>
          > ></saml:Subject>
          > ></saml:ApplicationSubjectStatement>
          > ></Assertion>
          > ></soap:Header>


          --- In soapbuilders@yahoogroups.com, Simon Fell <ws@z...> wrote:
          > As long as the element is in the correct namespace, it doesn't
          matter
          > what (if any) prefix is used, e.g.
          > <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
          > and
          > <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
          > and
          > <foo:Assertion xmlns:foo="urn:oasis:names:tc:SAML:1.0:assertion">
          >
          > should be treated the same.
          >
          > Cheers
          > Simon
          > www.pocketsoap.com
          >
          > On Sat, 19 Apr 2003 15:57:04 -0000, in ws you wrote:
          >
          > >Hello all, I am new to this list but it looks like I may be in the
          > >right place. I am writing a C# client that makes a call to a Java
          > >Web Service (implemented using WebMethods). The service uses a
          SOAP
          > >Header to authenticate the user. Here is what the header tags
          should
          > >look like:
          > >
          > ><soap:Header>
          > ><saml:Assertion MajorVersion="1" MinorVersion="0" Issuer="CAS"
          > >AssertionID="1234567890" IssueInstant="2003-04-18T22:53:03.9160448-
          > >04:00"
          > >xmlns="http:Acord.org/Life/2/"
          > >xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
          > >xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
          > >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          > >xsi:schemaLocation="urn:oasis:names:tc:SAML:1.0:assertion">
          > >
          > ><saml:ApplicationSubjectStatement>
          > ><saml:Subject>
          > ><saml:NameIdentifier>test</NameIdentifier>
          > ><saml:SubjectConfirmation>
          > ><saml:ConfirmationMethod>Password</ConfirmationMethod>
          > ><ds:KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
          > ><ds:KeyValue>testkey</ds:KeyValue>
          > ></ds:KeyInfo>
          > ></saml:SubjectConfirmation>
          > ></saml:Subject>
          > ></saml:ApplicationSubjectStatement>
          > ></saml:Assertion>
          > ></soap:Header>
          > >
          > >I can get my code to put prefixes on everything except the
          Assertion
          > >tags by using the XmlNamespaceDeclarationsAttribute in the
          Assertion
          > >class like so...
          > >
          > >[XmlRoot( ElementName = "Assertion", IsNullable=false,
          > > Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
          > >public class Assertion : System.Web.Services.Protocols.SoapHeader
          > >{
          > > public Assertion()
          > > {
          > > subjectStatement = new SAML.SubjectStatement();
          > > this.InitNamespaces();
          > > }
          > >
          > > [XmlNamespaceDeclarations]
          > > XmlSerializerNamespaces xmlns;
          > >
          > > private void InitNamespaces()
          > > {
          > > xmlns = new XmlSerializerNamespaces();
          > > xmlns.Add
          > > ("", "http://Acord.org/Life/2/");
          > > xmlns.Add
          > > ("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
          > > xmlns.Add
          > > ("ds", "http://www.w3.org/2000/09/xmldsig#"");
          > > }
          > >...
          > >
          > >Can anybody help?
          > >
          > >Thanks in advance,
          > >
          > >Bill
          > >
          > >
          > >
          > >-----------------------------------------------------------------
          > >This group is a forum for builders of SOAP implementations to
          discuss implementation and interoperability issues. Please stay on-
          topic.
          > >
          > >To unsubscribe from this group, send an email to:
          > >soapbuilders-unsubscribe@yahoogroups.com
          > >
          > >
          > >
          > >Your use of Yahoo! Groups is subject to
          http://docs.yahoo.com/info/terms/
          > >
        • Simon Fell
          use the XmlElement attribute instead of XmlRoot to set the namespace. Cheers Simon
          Message 4 of 11 , Apr 19, 2003
          • 0 Attachment
            use the XmlElement attribute instead of XmlRoot to set the namespace.

            Cheers
            Simon

            On Sat, 19 Apr 2003 20:26:52 -0000, in ws you wrote:

            >I see, but my problem is that Assertion has NO prefix, but the other
            >elements have the correct prefixes, to clarify, here is the output
            >that I currently get...
          • billyraykidwell
            Thanks, Simon, but when I attempt to do this, I get a compiler error, because you cannot use XmlElement for a class. If I put the assertion inside of another
            Message 5 of 11 , Apr 19, 2003
            • 0 Attachment
              Thanks, Simon, but when I attempt to do this, I get a compiler error,
              because you cannot use XmlElement for a class. If I put the
              assertion inside of another class, this may work, but then I will
              have the tags that correspond to the other class outside of the
              <saml:Assertion> tags. something like this...

              <wrapper>
              <saml:Assertion>
              ...
              </saml:Assertion>
              </wrapper>

              If there is a way to suppress the wrapper tags, this might work.
              Does anyone have any idea how to go about this, or some other
              approach to get around this problem?
            • Simon Fell
              ... You put the XmlElement decl in the proxy, but actually i looked again, and its not neaded. Its different if your doing encoded soap from doc literal (never
              Message 6 of 11 , Apr 19, 2003
              • 0 Attachment
                On Sat, 19 Apr 2003 20:46:25 -0000, in ws you wrote:

                >Thanks, Simon, but when I attempt to do this, I get a compiler error,
                >because you cannot use XmlElement for a class. If I put the
                >assertion inside of another class, this may work, but then I will
                >have the tags that correspond to the other class outside of the
                ><saml:Assertion> tags. something like this...
                >
                ><wrapper>
                > <saml:Assertion>
                > ...
                > </saml:Assertion>
                ></wrapper>
                >
                >If there is a way to suppress the wrapper tags, this might work.
                >Does anyone have any idea how to go about this, or some other
                >approach to get around this problem?

                You put the XmlElement decl in the proxy, but actually i looked again,
                and its not neaded.

                Its different if your doing encoded soap from doc literal (never
                understood why), but for doc/literal, its just

                [XmlRoot( ElementName = "Assertion", IsNullable=false,
                Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
                public class Assertion : System.Web.Services.Protocols.SoapHeader
                {
                ....
                }

                and in the proxy class
                public class myProxy :
                System.Web.Services.Protocols.SoapHttpClientProtocol {

                public Assertion assert ;


                [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://...",
                RequestNamespace="...",
                ResponseNamespace="...")]
                [SoapHeader("assert")]
                public void doSomething() {
                ...
                }
                }


                for SOAP encoded messages, you do
                [SoapType(Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
                public class Assertion : System.Web.Services.Protocols.SoapHeader
                {
                ...
                }

                System.Web.Services.Protocols.SoapHttpClientProtocol {

                [SoapElement(ElementName="Assertion")]
                public Assertion assert ;


                [System.Web.Services.Protocols.SoapRpcMethodAttribute("http://...",
                RequestNamespace="...",
                ResponseNamespace="...")]
                [SoapHeader("assert")]
                public void doSomething() {
                ...
                }
                }

                in both cases the Assertion element is a direct child of soap:Header
                and is in the urn:oasis:names:tc:SAML:1.0:assertion namespace.

                Cheers
                Simon
                www.pocketsoap.com
              • billyraykidwell
                Great, let me give this a shot and see how it works. I should be posting the results soon. Thanks a lot for your help, Simon. Bill
                Message 7 of 11 , Apr 19, 2003
                • 0 Attachment
                  Great, let me give this a shot and see how it works. I should be
                  posting the results soon. Thanks a lot for your help, Simon.

                  Bill
                • billyraykidwell
                  Simon, I really appreciate your help, but I am still doing something wrong. I am sending the message using the SoapDocumentMethod. The code that I have looks
                  Message 8 of 11 , Apr 19, 2003
                  • 0 Attachment
                    Simon, I really appreciate your help, but I am still doing something
                    wrong. I am sending the message using the SoapDocumentMethod. The
                    code that I have looks like what you (Simon) indicated. The
                    outermost tag is still giving me fits. Here is the code for main, my
                    proxy(relay) and assertion. If you like, I can email you the rest of
                    the files so you can see what I am doing wrong.

                    // main.cs
                    using System;
                    using System.Xml;
                    using SAML;

                    class MainClass
                    {
                    const string Path
                    = "C:\\source\\Csharp\\MetLife\\Frontend\\NDS\\";

                    public static void Main(string[] args)
                    {
                    Relay relay = new Relay();
                    Assertion assert = new SAML.Assertion();

                    Console.WriteLine("Setting Header Information");
                    assert.MajorVersion = "1";
                    assert.MinorVersion = "0";
                    assert.Issuer = "test";
                    assert.ID = "1234567890";
                    assert.IssueInstant = DateTime.Now;
                    assert.SubjectStatement.Subject.Name = "test";

                    assert.SubjectStatement.Subject.Confirmation.ConfirmationMetho
                    d = "Password";

                    assert.SubjectStatement.Subject.Confirmation.KeyInfo.KeyValue
                    = "acs2003";

                    Console.WriteLine("Loading Document");
                    XmlDocument doc = new XmlDocument();
                    doc.Load( Path + "TXLife.xml");
                    XmlNodeReader reader = new XmlNodeReader(doc);

                    Console.WriteLine("Making Service Call");

                    XmlNode response;
                    Console.WriteLine("Making Call with ... ");
                    Console.WriteLine(doc.ToString());
                    relay.assert = assert;
                    Console.WriteLine("Assertion value set ... ");
                    response = relay.RelayXml ( doc.DocumentElement );

                    Console.WriteLine("Response ... ");
                    Console.WriteLine(response.OuterXml);

                    Console.WriteLine("Done");
                    }
                    }

                    // relay.cs
                    using System.Diagnostics;
                    using System.Xml.Serialization;
                    using System;
                    using System.Net;
                    using System.Web.Services.Description;
                    using System.Web.Services.Protocols;
                    using System.ComponentModel;
                    using System.Web.Services;
                    using SAML;


                    /// <remarks/>
                    [System.Diagnostics.DebuggerStepThroughAttribute()]
                    [System.ComponentModel.DesignerCategoryAttribute("code")]
                    [System.Web.Services.WebServiceBindingAttribute(Name="RelaySoap",

                    Namespace="http://tempuri.org/")]
                    public class Relay :
                    System.Web.Services.Protocols.SoapHttpClientProtocol
                    {
                    /// <remarks/>
                    [SoapElement(ElementName="Assertion")]
                    public SAML.Assertion assert;

                    /// <remarks/>
                    public Relay() {
                    //this.Url
                    = "http://199.74.150.61:5556/soap/srvInvokeSRDSoap";
                    this.Url
                    = "http://localhost:8080/GenericWebService/relay.asmx";
                    WebProxy proxy = new WebProxy();
                    proxy.BypassArrayList.Add("199.74.150.61");
                    this.Proxy = proxy;
                    }

                    /// <remarks/>

                    [System.Web.Services.Protocols.SoapDocumentMethodAttribute
                    ("http://tempuri.org/RelayXml",
                    RequestNamespace="http://tempuri.org/",
                    ResponseNamespace="http://tempuri.org/",

                    Use=System.Web.Services.Description.SoapBindingUse.Literal,

                    ParameterStyle=System.Web.Services.Protocols.SoapParameterStyl
                    e.Wrapped)]
                    [SoapHeader("assert")]
                    public System.Xml.XmlNode RelayXml(System.Xml.XmlNode body) {
                    object[] results = this.Invoke("RelayXml", new object[] {
                    body});
                    return ((System.Xml.XmlNode)(results[0]));
                    }

                    /// <remarks/>
                    public System.IAsyncResult BeginRelayXml(System.Xml.XmlNode body,
                    System.AsyncCallback callback, object asyncState) {
                    return this.BeginInvoke("RelayXml", new object[] {
                    body}, callback, asyncState);
                    }

                    /// <remarks/>
                    public System.Xml.XmlNode EndRelayXml(System.IAsyncResult
                    asyncResult) {
                    object[] results = this.EndInvoke(asyncResult);
                    return ((System.Xml.XmlNode)(results[0]));
                    }
                    }

                    // assertion.cs
                    namespace SAML
                    {
                    using System;
                    using System.Xml;
                    using System.Xml.Serialization;
                    using System.Web.Services.Protocols;


                    [SoapType(Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
                    public class Assertion :
                    System.Web.Services.Protocols.SoapHeader
                    {

                    /// <summary>
                    /// Default constructor - initializes all fields to
                    default values
                    /// </summary>
                    public Assertion()
                    {
                    subjectStatement = new SAML.SubjectStatement
                    ();
                    this.NamespaceInitialize();
                    }

                    // ***** Namespace Changes ***** //
                    [XmlNamespaceDeclarations]
                    public XmlSerializerNamespaces xmlns;

                    private void NamespaceInitialize()
                    {
                    xmlns = new XmlSerializerNamespaces();
                    xmlns.Add
                    ("", "http://ACORD.org/Standards/Life/2");
                    xmlns.Add
                    ("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
                    xmlns.Add
                    ("ds", "http://www.w3.org/2000/09/xmldsig#");

                    }
                    // ***** Namespace Changes ***** //


                    [XmlAttribute("MajorVersion")]
                    public string MajorVersion
                    {
                    get
                    {return majorVersion;}
                    set
                    {majorVersion = value;}
                    }

                    [XmlAttribute("MinorVersion")]
                    public string MinorVersion
                    {
                    get
                    {return minorVersion;}
                    set
                    {minorVersion = value;}
                    }

                    [XmlAttribute("Issuer")]
                    public string Issuer
                    {
                    get
                    {return issuer; }
                    set
                    {issuer = value;}
                    }

                    [XmlAttribute("AssertionID")]
                    public string ID
                    {
                    get
                    {return assertionId;}
                    set
                    {assertionId = value;}
                    }

                    [XmlAttribute("IssueInstant")]
                    public DateTime IssueInstant
                    {
                    get
                    {return issueInstant;}
                    set
                    {issueInstant = value;}
                    }

                    [XmlElement
                    (ElementName="ApplicationSubjectStatement",

                    Namespace="urn:oasis:names:tc:SAML:1.0:assertion")]
                    public SAML.SubjectStatement SubjectStatement
                    {
                    get
                    {return subjectStatement;}
                    set
                    {subjectStatement = value;}
                    }

                    private string majorVersion;
                    private string minorVersion;
                    private string issuer;
                    private string assertionId;
                    private DateTime issueInstant;
                    private SAML.SubjectStatement subjectStatement;
                    }
                    }
                  • Simon Fell
                    If you put an XmlRoot attribute on the Assersion class you should be done. I ll email you directly my test code, which generates this message.
                    Message 9 of 11 , Apr 20, 2003
                    • 0 Attachment
                      If you put an XmlRoot attribute on the Assersion class you should be
                      done. I'll email you directly my test code, which generates this
                      message.

                      <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                      <soap:Header>
                      <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
                      <myAssertion>xml</myAssertion>
                      </Assertion>
                      </soap:Header><soap:Body>
                      <echoVoid xmlns="http://soapinterop.org/" />
                      </soap:Body></soap:Envelope>

                      Cheers
                      Simon

                      On Sun, 20 Apr 2003 00:02:20 -0000, in ws you wrote:

                      >Simon, I really appreciate your help, but I am still doing something
                      >wrong. I am sending the message using the SoapDocumentMethod. The
                      >code that I have looks like what you (Simon) indicated. The
                      >outermost tag is still giving me fits. Here is the code for main, my
                      >proxy(relay) and assertion. If you like, I can email you the rest of
                      >the files so you can see what I am doing wrong.
                      >
                      >// main.cs
                      >using System;
                      >using System.Xml;
                      >using SAML;
                      >
                      >class MainClass
                      >{
                      > const string Path
                      >= "C:\\source\\Csharp\\MetLife\\Frontend\\NDS\\";
                      >
                      > public static void Main(string[] args)
                      > {
                      > Relay relay = new Relay();
                      > Assertion assert = new SAML.Assertion();
                      >
                      > Console.WriteLine("Setting Header Information");
                      > assert.MajorVersion = "1";
                      > assert.MinorVersion = "0";
                      > assert.Issuer = "test";
                      > assert.ID = "1234567890";
                      > assert.IssueInstant = DateTime.Now;
                      > assert.SubjectStatement.Subject.Name = "test";
                      >
                      > assert.SubjectStatement.Subject.Confirmation.ConfirmationMetho
                      >d = "Password";
                      >
                      > assert.SubjectStatement.Subject.Confirmation.KeyInfo.KeyValue
                      >= "acs2003";
                      >
                      > Console.WriteLine("Loading Document");
                      > XmlDocument doc = new XmlDocument();
                      > doc.Load( Path + "TXLife.xml");
                      > XmlNodeReader reader = new XmlNodeReader(doc);
                      >
                      > Console.WriteLine("Making Service Call");
                      >
                      > XmlNode response;
                      > Console.WriteLine("Making Call with ... ");
                      > Console.WriteLine(doc.ToString());
                      > relay.assert = assert;
                      > Console.WriteLine("Assertion value set ... ");
                      > response = relay.RelayXml ( doc.DocumentElement );
                      >
                      > Console.WriteLine("Response ... ");
                      > Console.WriteLine(response.OuterXml);
                      >
                      > Console.WriteLine("Done");
                      > }
                      >}
                      >
                      >// relay.cs
                      >using System.Diagnostics;
                      >using System.Xml.Serialization;
                      >using System;
                      >using System.Net;
                      >using System.Web.Services.Description;
                      >using System.Web.Services.Protocols;
                      >using System.ComponentModel;
                      >using System.Web.Services;
                      >using SAML;
                      >
                      >
                      >/// <remarks/>
                      >[System.Diagnostics.DebuggerStepThroughAttribute()]
                      >[System.ComponentModel.DesignerCategoryAttribute("code")]
                      >[System.Web.Services.WebServiceBindingAttribute(Name="RelaySoap",
                      >
                      >Namespace="http://tempuri.org/")]
                      >public class Relay :
                      >System.Web.Services.Protocols.SoapHttpClientProtocol
                      >{
                      > /// <remarks/>
                      > [SoapElement(ElementName="Assertion")]
                      > public SAML.Assertion assert;
                      >
                      > /// <remarks/>
                      > public Relay() {
                      > //this.Url
                      >= "http://199.74.150.61:5556/soap/srvInvokeSRDSoap";
                      > this.Url
                      >= "http://localhost:8080/GenericWebService/relay.asmx";
                      > WebProxy proxy = new WebProxy();
                      > proxy.BypassArrayList.Add("199.74.150.61");
                      > this.Proxy = proxy;
                      > }
                      >
                      > /// <remarks/>
                      >
                      > [System.Web.Services.Protocols.SoapDocumentMethodAttribute
                      >("http://tempuri.org/RelayXml",
                      > RequestNamespace="http://tempuri.org/",
                      > ResponseNamespace="http://tempuri.org/",
                      >
                      > Use=System.Web.Services.Description.SoapBindingUse.Literal,
                      >
                      > ParameterStyle=System.Web.Services.Protocols.SoapParameterStyl
                      >e.Wrapped)]
                      > [SoapHeader("assert")]
                      > public System.Xml.XmlNode RelayXml(System.Xml.XmlNode body) {
                      > object[] results = this.Invoke("RelayXml", new object[] {
                      > body});
                      > return ((System.Xml.XmlNode)(results[0]));
                      > }
                      >
                      > /// <remarks/>
                      > public System.IAsyncResult BeginRelayXml(System.Xml.XmlNode body,
                      >System.AsyncCallback callback, object asyncState) {
                      > return this.BeginInvoke("RelayXml", new object[] {
                      > body}, callback, asyncState);
                      > }
                      >
                      > /// <remarks/>
                      > public System.Xml.XmlNode EndRelayXml(System.IAsyncResult
                      >asyncResult) {
                      > object[] results = this.EndInvoke(asyncResult);
                      > return ((System.Xml.XmlNode)(results[0]));
                      > }
                      >}
                      >
                      >// assertion.cs
                      >namespace SAML
                      >{
                      > using System;
                      > using System.Xml;
                      > using System.Xml.Serialization;
                      > using System.Web.Services.Protocols;
                      >
                      >
                      > [SoapType(Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
                      > public class Assertion :
                      >System.Web.Services.Protocols.SoapHeader
                      > {
                      >
                      > /// <summary>
                      > /// Default constructor - initializes all fields to
                      >default values
                      > /// </summary>
                      > public Assertion()
                      > {
                      > subjectStatement = new SAML.SubjectStatement
                      >();
                      > this.NamespaceInitialize();
                      > }
                      >
                      > // ***** Namespace Changes ***** //
                      > [XmlNamespaceDeclarations]
                      > public XmlSerializerNamespaces xmlns;
                      >
                      > private void NamespaceInitialize()
                      > {
                      > xmlns = new XmlSerializerNamespaces();
                      > xmlns.Add
                      >("", "http://ACORD.org/Standards/Life/2");
                      > xmlns.Add
                      >("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
                      > xmlns.Add
                      >("ds", "http://www.w3.org/2000/09/xmldsig#");
                      >
                      > }
                      > // ***** Namespace Changes ***** //
                      >
                      >
                      > [XmlAttribute("MajorVersion")]
                      > public string MajorVersion
                      > {
                      > get
                      > {return majorVersion;}
                      > set
                      > {majorVersion = value;}
                      > }
                      >
                      > [XmlAttribute("MinorVersion")]
                      > public string MinorVersion
                      > {
                      > get
                      > {return minorVersion;}
                      > set
                      > {minorVersion = value;}
                      > }
                      >
                      > [XmlAttribute("Issuer")]
                      > public string Issuer
                      > {
                      > get
                      > {return issuer; }
                      > set
                      > {issuer = value;}
                      > }
                      >
                      > [XmlAttribute("AssertionID")]
                      > public string ID
                      > {
                      > get
                      > {return assertionId;}
                      > set
                      > {assertionId = value;}
                      > }
                      >
                      > [XmlAttribute("IssueInstant")]
                      > public DateTime IssueInstant
                      > {
                      > get
                      > {return issueInstant;}
                      > set
                      > {issueInstant = value;}
                      > }
                      >
                      > [XmlElement
                      >(ElementName="ApplicationSubjectStatement",
                      >
                      >Namespace="urn:oasis:names:tc:SAML:1.0:assertion")]
                      > public SAML.SubjectStatement SubjectStatement
                      > {
                      > get
                      > {return subjectStatement;}
                      > set
                      > {subjectStatement = value;}
                      > }
                      >
                      > private string majorVersion;
                      > private string minorVersion;
                      > private string issuer;
                      > private string assertionId;
                      > private DateTime issueInstant;
                      > private SAML.SubjectStatement subjectStatement;
                      > }
                      >}
                      >
                      >
                      >
                      >
                      >-----------------------------------------------------------------
                      >This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues. Please stay on-topic.
                      >
                      >To unsubscribe from this group, send an email to:
                      >soapbuilders-unsubscribe@yahoogroups.com
                      >
                      >
                      >
                      >Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                      >
                    • Clement Luy
                      Can you sent your test code to me as well ? I having the same problem in using the webservice Regards, Clement Luy Software Engineer iNavigate Sdn Bhd Suite
                      Message 10 of 11 , May 7 9:10 PM
                      • 0 Attachment

                        Can you sent your test code to me as well ?

                        I having the same problem in using the webservice

                         

                        Regards,
                        Clement Luy
                        Software Engineer
                        iNavigate Sdn Bhd
                        Suite A06-09, Plaza Mont Kiara,
                        2, Jalan Kiara, Mont Kiara,
                        Kuala Lumpur, 50480,
                        MALAYSIA
                        Tel : +603- 6411 9927
                        Fax : +603-6411 9921
                        H/P : +6012-2338516

                        -----Original Message-----
                        From: Simon Fell [mailto:ws@...]
                        Sent: Monday, April 21, 2003 1:09 AM
                        To: soapbuilders@yahoogroups.com
                        Subject: Re: [soapbuilders] Re: SOAP Header Namespace/Prefix problem in C# Client

                         

                        If you put an XmlRoot attribute on the Assersion class you should be
                        done. I'll email you directly my test code, which generates this
                        message.

                        <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <soap:Header>
                        <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
                        <myAssertion>xml</myAssertion>
                        </Assertion>
                        </soap:Header><soap:Body>
                        <echoVoid xmlns="http://soapinterop.org/" />
                        </soap:Body></soap:Envelope>

                        Cheers
                        Simon

                        On Sun, 20 Apr 2003 00:02:20 -0000, in ws you wrote:

                        >Simon, I really appreciate your help, but I am still doing something
                        >wrong.  I am sending the message using the SoapDocumentMethod.  The
                        >code that I have looks like what you (Simon) indicated.  The
                        >outermost tag is still giving me fits.  Here is the code for main, my
                        >proxy(relay) and assertion.  If you like, I can email you the rest of
                        >the files so you can see what I am doing wrong. 
                        >
                        >// main.cs
                        >using System;
                        >using System.Xml;
                        >using SAML;
                        >
                        >class MainClass
                        >{
                        >      const string Path
                        >= "C:\\source\\Csharp\\MetLife\\Frontend\\NDS\\";
                        >     
                        >      public static void Main(string[] args)
                        >      {
                        >            Relay relay = new Relay();
                        >            Assertion assert = new SAML.Assertion();
                        >           
                        >            Console.WriteLine("Setting Header Information");
                        >            assert.MajorVersion = "1";
                        >            assert.MinorVersion = "0";
                        >            assert.Issuer = "test";
                        >            assert.ID = "1234567890";
                        >            assert.IssueInstant = DateTime.Now;
                        >            assert.SubjectStatement.Subject.Name = "test";
                        >     
                        >      assert.SubjectStatement.Subject.Confirmation.ConfirmationMetho
                        >d = "Password";
                        >     
                        >      assert.SubjectStatement.Subject.Confirmation.KeyInfo.KeyValue
                        >= "acs2003";
                        >                       
                        >            Console.WriteLine("Loading Document");
                        >            XmlDocument doc = new XmlDocument();
                        >            doc.Load( Path + "TXLife.xml");
                        >            XmlNodeReader reader = new XmlNodeReader(doc);
                        >           
                        >            Console.WriteLine("Making Service Call");
                        >           
                        >            XmlNode response;           
                        >            Console.WriteLine("Making Call with ... ");
                        >            Console.WriteLine(doc.ToString());
                        >            relay.assert = assert;
                        >            Console.WriteLine("Assertion value set ... ");
                        >            response = relay.RelayXml ( doc.DocumentElement );
                        >           
                        >            Console.WriteLine("Response ... ");
                        >            Console.WriteLine(response.OuterXml);
                        >           
                        >            Console.WriteLine("Done");
                        >      }
                        >}
                        >
                        >// relay.cs
                        >using System.Diagnostics;
                        >using System.Xml.Serialization;
                        >using System;
                        >using System.Net;
                        >using System.Web.Services.Description;
                        >using System.Web.Services.Protocols;
                        >using System.ComponentModel;
                        >using System.Web.Services;
                        >using SAML;
                        >
                        >
                        >/// <remarks/>
                        >[System.Diagnostics.DebuggerStepThroughAttribute()]
                        >[System.ComponentModel.DesignerCategoryAttribute("code")]
                        >[System.Web.Services.WebServiceBindingAttribute(Name="RelaySoap",
                        >                                               
                        >Namespace="http://tempuri.org/")]
                        >public class Relay :
                        >System.Web.Services.Protocols.SoapHttpClientProtocol
                        >{
                        >      /// <remarks/>
                        >      [SoapElement(ElementName="Assertion")]
                        >      public SAML.Assertion assert;
                        >   
                        >    /// <remarks/>
                        >    public Relay() {
                        >        //this.Url
                        >= "http://199.74.150.61:5556/soap/srvInvokeSRDSoap";
                        >          this.Url
                        >= "http://localhost:8080/GenericWebService/relay.asmx"; 
                        >        WebProxy proxy = new WebProxy();
                        >        proxy.BypassArrayList.Add("199.74.150.61");
                        >        this.Proxy = proxy;   
                        >    }  
                        >   
                        >    /// <remarks/>
                        >       
                        >    [System.Web.Services.Protocols.SoapDocumentMethodAttribute
                        >("http://tempuri.org/RelayXml",
                        >                    RequestNamespace="http://tempuri.org/",
                        >                    ResponseNamespace="http://tempuri.org/",
                        >             
                        >      Use=System.Web.Services.Description.SoapBindingUse.Literal,
                        >             
                        >      ParameterStyle=System.Web.Services.Protocols.SoapParameterStyl
                        >e.Wrapped)]
                        >      [SoapHeader("assert")]                   
                        >    public System.Xml.XmlNode RelayXml(System.Xml.XmlNode body) {
                        >        object[] results = this.Invoke("RelayXml", new object[] {
                        >                    body});
                        >        return ((System.Xml.XmlNode)(results[0]));
                        >    }
                        >   
                        >    /// <remarks/>
                        >    public System.IAsyncResult BeginRelayXml(System.Xml.XmlNode body,
                        >System.AsyncCallback callback, object asyncState) {
                        >        return this.BeginInvoke("RelayXml", new object[] {
                        >                    body}, callback, asyncState);
                        >    }
                        >   
                        >    /// <remarks/>
                        >    public System.Xml.XmlNode EndRelayXml(System.IAsyncResult
                        >asyncResult) {
                        >        object[] results = this.EndInvoke(asyncResult);
                        >        return ((System.Xml.XmlNode)(results[0]));
                        >    }
                        >}
                        >
                        >// assertion.cs
                        >namespace SAML
                        >{
                        >      using System;
                        >      using System.Xml;
                        >      using System.Xml.Serialization;
                        >      using System.Web.Services.Protocols;
                        >     
                        >     
                        >      [SoapType(Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
                        >      public class Assertion :
                        >System.Web.Services.Protocols.SoapHeader
                        >      {
                        >           
                        >            /// <summary>
                        >            /// Default constructor - initializes all fields to
                        >default values
                        >            /// </summary>
                        >            public Assertion()
                        >            {
                        >                  subjectStatement = new SAML.SubjectStatement
                        >();
                        >                  this.NamespaceInitialize();
                        >            }
                        >           
                        >            // ***** Namespace Changes ***** //
                        >            [XmlNamespaceDeclarations]
                        >            public XmlSerializerNamespaces xmlns;   
                        >   
                        >          private void NamespaceInitialize()
                        >            {
                        >                  xmlns = new XmlSerializerNamespaces();
                        >                  xmlns.Add
                        >("", "http://ACORD.org/Standards/Life/2");
                        >                  xmlns.Add
                        >("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
                        >                  xmlns.Add
                        >("ds", "http://www.w3.org/2000/09/xmldsig#");           
                        >                                 
                        >            }
                        >            // ***** Namespace Changes ***** //
                        >
                        >           
                        >            [XmlAttribute("MajorVersion")]
                        >            public string MajorVersion
                        >            {
                        >                  get
                        >                  {return majorVersion;}
                        >                  set
                        >                  {majorVersion = value;}
                        >            }
                        >           
                        >            [XmlAttribute("MinorVersion")]
                        >            public string MinorVersion
                        >            {
                        >                  get
                        >                  {return minorVersion;}
                        >                  set
                        >                  {minorVersion = value;}
                        >            }
                        >           
                        >            [XmlAttribute("Issuer")]
                        >            public string Issuer
                        >            {
                        >                  get
                        >                  {return issuer;      }
                        >                  set
                        >                  {issuer = value;}
                        >            }
                        >           
                        >            [XmlAttribute("AssertionID")]
                        >            public string ID
                        >            {
                        >                  get
                        >                  {return assertionId;}
                        >                  set
                        >                  {assertionId = value;}
                        >            }
                        >           
                        >            [XmlAttribute("IssueInstant")]
                        >            public DateTime IssueInstant
                        >            {
                        >                  get
                        >                  {return issueInstant;}
                        >                  set
                        >                  {issueInstant = value;}
                        >            }
                        >           
                        >            [XmlElement
                        >(ElementName="ApplicationSubjectStatement",
                        >                       
                        >Namespace="urn:oasis:names:tc:SAML:1.0:assertion")]
                        >            public SAML.SubjectStatement SubjectStatement
                        >            {
                        >                  get
                        >                  {return subjectStatement;}
                        >                  set
                        >                  {subjectStatement = value;}
                        >            }
                        >                 
                        >            private string majorVersion;
                        >            private string minorVersion;
                        >            private string issuer;
                        >            private string assertionId;
                        >            private DateTime issueInstant;
                        >            private SAML.SubjectStatement subjectStatement;
                        >      }
                        >}
                        >
                        >
                        >
                        >
                        >-----------------------------------------------------------------
                        >This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.
                        >
                        >To unsubscribe from this group, send an email to:
                        >soapbuilders-unsubscribe@yahoogroups.com
                        >
                        >
                        >
                        >Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                        >



                        -----------------------------------------------------------------
                        This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.

                        To unsubscribe from this group, send an email to:
                        soapbuilders-unsubscribe@yahoogroups.com



                        Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
                      • megmegp
                        Did this problem get solved? I m struggling with the exact same issue, and I would appreciate seeing the solution code posted... Thanks, Meg ... problem in C#
                        Message 11 of 11 , Jul 25, 2003
                        • 0 Attachment
                          Did this problem get solved? I'm struggling with the exact same
                          issue, and I would appreciate seeing the solution code posted...

                          Thanks,
                          Meg

                          --- In soapbuilders@yahoogroups.com, "Clement Luy" <bfluy@t...> wrote:
                          > Can you sent your test code to me as well ?
                          >
                          > I having the same problem in using the webservice
                          >
                          >
                          >
                          > Regards,
                          > Clement Luy
                          > Software Engineer
                          > iNavigate Sdn Bhd
                          > Suite A06-09, Plaza Mont Kiara,
                          > 2, Jalan Kiara, Mont Kiara,
                          > Kuala Lumpur, 50480,
                          > MALAYSIA
                          > Tel : +603- 6411 9927
                          > Fax : +603-6411 9921
                          > H/P : +6012-2338516
                          >
                          > -----Original Message-----
                          > From: Simon Fell [mailto:ws@z...]
                          > Sent: Monday, April 21, 2003 1:09 AM
                          > To: soapbuilders@yahoogroups.com
                          > Subject: Re: [soapbuilders] Re: SOAP Header Namespace/Prefix
                          problem in C#
                          > Client
                          >
                          >
                          >
                          > If you put an XmlRoot attribute on the Assersion class you should be
                          > done. I'll email you directly my test code, which generates this
                          > message.
                          >
                          > <soap:Envelope
                          xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
                          > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                          > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                          > <soap:Header>
                          > <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
                          > <myAssertion>xml</myAssertion>
                          > </Assertion>
                          > </soap:Header><soap:Body>
                          > <echoVoid xmlns="http://soapinterop.org/" />
                          > </soap:Body></soap:Envelope>
                          >
                          > Cheers
                          > Simon
                          >
                          > On Sun, 20 Apr 2003 00:02:20 -0000, in ws you wrote:
                          >
                          > >Simon, I really appreciate your help, but I am still doing
                          something
                          > >wrong. I am sending the message using the SoapDocumentMethod.
                          The
                          > >code that I have looks like what you (Simon) indicated. The
                          > >outermost tag is still giving me fits. Here is the code for main,
                          my
                          > >proxy(relay) and assertion. If you like, I can email you the rest
                          of
                          > >the files so you can see what I am doing wrong.
                          > >
                          > >// main.cs
                          > >using System;
                          > >using System.Xml;
                          > >using SAML;
                          > >
                          > >class MainClass
                          > >{
                          > > const string Path
                          > >= "C:\\source\\Csharp\\MetLife\\Frontend\\NDS\\";
                          > >
                          > > public static void Main(string[] args)
                          > > {
                          > > Relay relay = new Relay();
                          > > Assertion assert = new SAML.Assertion();
                          > >
                          > > Console.WriteLine("Setting Header Information");
                          > > assert.MajorVersion = "1";
                          > > assert.MinorVersion = "0";
                          > > assert.Issuer = "test";
                          > > assert.ID = "1234567890";
                          > > assert.IssueInstant = DateTime.Now;
                          > > assert.SubjectStatement.Subject.Name = "test";
                          > >
                          > >
                          assert.SubjectStatement.Subject.Confirmation.ConfirmationMetho
                          > >d = "Password";
                          > >
                          > >
                          assert.SubjectStatement.Subject.Confirmation.KeyInfo.KeyValue
                          > >= "acs2003";
                          > >
                          > > Console.WriteLine("Loading Document");
                          > > XmlDocument doc = new XmlDocument();
                          > > doc.Load( Path + "TXLife.xml");
                          > > XmlNodeReader reader = new XmlNodeReader(doc);
                          > >
                          > > Console.WriteLine("Making Service Call");
                          > >
                          > > XmlNode response;
                          > > Console.WriteLine("Making Call with ... ");
                          > > Console.WriteLine(doc.ToString());
                          > > relay.assert = assert;
                          > > Console.WriteLine("Assertion value set ... ");
                          > > response = relay.RelayXml ( doc.DocumentElement );
                          > >
                          > > Console.WriteLine("Response ... ");
                          > > Console.WriteLine(response.OuterXml);
                          > >
                          > > Console.WriteLine("Done");
                          > > }
                          > >}
                          > >
                          > >// relay.cs
                          > >using System.Diagnostics;
                          > >using System.Xml.Serialization;
                          > >using System;
                          > >using System.Net;
                          > >using System.Web.Services.Description;
                          > >using System.Web.Services.Protocols;
                          > >using System.ComponentModel;
                          > >using System.Web.Services;
                          > >using SAML;
                          > >
                          > >
                          > >/// <remarks/>
                          > >[System.Diagnostics.DebuggerStepThroughAttribute()]
                          > >[System.ComponentModel.DesignerCategoryAttribute("code")]
                          > >[System.Web.Services.WebServiceBindingAttribute(Name="RelaySoap",
                          > >
                          > >Namespace="http://tempuri.org/")]
                          > >public class Relay :
                          > >System.Web.Services.Protocols.SoapHttpClientProtocol
                          > >{
                          > > /// <remarks/>
                          > > [SoapElement(ElementName="Assertion")]
                          > > public SAML.Assertion assert;
                          > >
                          > > /// <remarks/>
                          > > public Relay() {
                          > > //this.Url
                          > >= "http://199.74.150.61:5556/soap/srvInvokeSRDSoap";
                          > > this.Url
                          > >= "http://localhost:8080/GenericWebService/relay.asmx";
                          > > WebProxy proxy = new WebProxy();
                          > > proxy.BypassArrayList.Add("199.74.150.61");
                          > > this.Proxy = proxy;
                          > > }
                          > >
                          > > /// <remarks/>
                          > >
                          > > [System.Web.Services.Protocols.SoapDocumentMethodAttribute
                          > >("http://tempuri.org/RelayXml",
                          > > RequestNamespace="http://tempuri.org/",
                          > > ResponseNamespace="http://tempuri.org/",
                          > >
                          > > Use=System.Web.Services.Description.SoapBindingUse.Literal,
                          > >
                          > >
                          ParameterStyle=System.Web.Services.Protocols.SoapParameterStyl
                          > >e.Wrapped)]
                          > > [SoapHeader("assert")]
                          > > public System.Xml.XmlNode RelayXml(System.Xml.XmlNode body) {
                          > > object[] results = this.Invoke("RelayXml", new object[] {
                          > > body});
                          > > return ((System.Xml.XmlNode)(results[0]));
                          > > }
                          > >
                          > > /// <remarks/>
                          > > public System.IAsyncResult BeginRelayXml(System.Xml.XmlNode
                          body,
                          > >System.AsyncCallback callback, object asyncState) {
                          > > return this.BeginInvoke("RelayXml", new object[] {
                          > > body}, callback, asyncState);
                          > > }
                          > >
                          > > /// <remarks/>
                          > > public System.Xml.XmlNode EndRelayXml(System.IAsyncResult
                          > >asyncResult) {
                          > > object[] results = this.EndInvoke(asyncResult);
                          > > return ((System.Xml.XmlNode)(results[0]));
                          > > }
                          > >}
                          > >
                          > >// assertion.cs
                          > >namespace SAML
                          > >{
                          > > using System;
                          > > using System.Xml;
                          > > using System.Xml.Serialization;
                          > > using System.Web.Services.Protocols;
                          > >
                          > >
                          > > [SoapType
                          (Namespace="urn:oasis:names:tc:SAML:1.0:assertion" )]
                          > > public class Assertion :
                          > >System.Web.Services.Protocols.SoapHeader
                          > > {
                          > >
                          > > /// <summary>
                          > > /// Default constructor - initializes all fields to
                          > >default values
                          > > /// </summary>
                          > > public Assertion()
                          > > {
                          > > subjectStatement = new SAML.SubjectStatement
                          > >();
                          > > this.NamespaceInitialize();
                          > > }
                          > >
                          > > // ***** Namespace Changes ***** //
                          > > [XmlNamespaceDeclarations]
                          > > public XmlSerializerNamespaces xmlns;
                          > >
                          > > private void NamespaceInitialize()
                          > > {
                          > > xmlns = new XmlSerializerNamespaces();
                          > > xmlns.Add
                          > >("", "http://ACORD.org/Standards/Life/2");
                          > > xmlns.Add
                          > >("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
                          > > xmlns.Add
                          > >("ds", "http://www.w3.org/2000/09/xmldsig#
                          > <http://www.w3.org/2000/09/xmldsig> ");
                          > >
                          > > }
                          > > // ***** Namespace Changes ***** //
                          > >
                          > >
                          > > [XmlAttribute("MajorVersion")]
                          > > public string MajorVersion
                          > > {
                          > > get
                          > > {return majorVersion;}
                          > > set
                          > > {majorVersion = value;}
                          > > }
                          > >
                          > > [XmlAttribute("MinorVersion")]
                          > > public string MinorVersion
                          > > {
                          > > get
                          > > {return minorVersion;}
                          > > set
                          > > {minorVersion = value;}
                          > > }
                          > >
                          > > [XmlAttribute("Issuer")]
                          > > public string Issuer
                          > > {
                          > > get
                          > > {return issuer; }
                          > > set
                          > > {issuer = value;}
                          > > }
                          > >
                          > > [XmlAttribute("AssertionID")]
                          > > public string ID
                          > > {
                          > > get
                          > > {return assertionId;}
                          > > set
                          > > {assertionId = value;}
                          > > }
                          > >
                          > > [XmlAttribute("IssueInstant")]
                          > > public DateTime IssueInstant
                          > > {
                          > > get
                          > > {return issueInstant;}
                          > > set
                          > > {issueInstant = value;}
                          > > }
                          > >
                          > > [XmlElement
                          > >(ElementName="ApplicationSubjectStatement",
                          > >
                          > >Namespace="urn:oasis:names:tc:SAML:1.0:assertion")]
                          > > public SAML.SubjectStatement SubjectStatement
                          > > {
                          > > get
                          > > {return subjectStatement;}
                          > > set
                          > > {subjectStatement = value;}
                          > > }
                          > >
                          > > private string majorVersion;
                          > > private string minorVersion;
                          > > private string issuer;
                          > > private string assertionId;
                          > > private DateTime issueInstant;
                          > > private SAML.SubjectStatement subjectStatement;
                          > > }
                          > >}
                          > >
                          > >
                          > >
                          > >
                          > >-----------------------------------------------------------------
                          > >This group is a forum for builders of SOAP implementations to
                          discuss
                          > implementation and interoperability issues. Please stay on-topic.
                          > >
                          > >To unsubscribe from this group, send an email to:
                          > >soapbuilders-unsubscribe@yahoogroups.com
                          > >
                          > >
                          > >
                          > >Your use of Yahoo! Groups is subject to
                          http://docs.yahoo.com/info/terms/
                          > >
                          >
                          >
                          >
                          >
                          >
                          >
                          > Yahoo! Groups Sponsor
                          >
                          >
                          >
                          >
                          <http://rd.yahoo.com/M=250099.3088638.4504503.1728375/D=egroupweb/S=17
                          057010
                          > 14:HM/A=1546002/R=0/*http:/ads.track-star.com/linker.ts?
                          ts=1;2;315;15_1_48>
                          >
                          >
                          >
                          > <http://us.adserver.yahoo.com/l?
                          M=250099.3088638.4504503.1728375/D=egroupmai
                          > l/S=:HM/A=1546002/rand=352658202>
                          >
                          >
                          > -----------------------------------------------------------------
                          > This group is a forum for builders of SOAP implementations to
                          discuss
                          > implementation and interoperability issues. Please stay on-topic.
                          >
                          > To unsubscribe from this group, send an email to:
                          > soapbuilders-unsubscribe@yahoogroups.com
                          >
                          >
                          >
                          > Your use of Yahoo! Groups is subject to the Yahoo!
                          > <http://docs.yahoo.com/info/terms/> Terms of Service.
                        Your message has been successfully submitted and would be delivered to recipients shortly.