This problem did not go away with the RTMs of VS2005 and WSE 3.0.
When creating a typical UserameoverCertificate policy through the wse
settings tool the policy portion of the policy config file looks like thi:
<policy name="ClientPolicy">
<usernameForCertificateSecurity establishSecurityContext="false"
renewExpiredSecurityContext="true" requireSignatureConfirmation="false"
messageProtectionOrder="SignBeforeEncrypt" requireDerivedKeys="true"
ttlInSeconds="300">
<serviceToken>
<x509 storeLocation="CurrentUser" storeName="AddressBook"
findValue="CN=WSE2QuickStartServer"
findType="FindBySubjectDistinguishedName" />
</serviceToken>
<protection>
<request signatureOptions="IncludeAddressing, IncludeTimestamp,
IncludeSoapBody" encryptBody="true" />
<response signatureOptions="IncludeAddressing, IncludeTimestamp,
IncludeSoapBody" encryptBody="true" />
<fault signatureOptions="IncludeAddressing, IncludeTimestamp,
IncludeSoapBody" encryptBody="false" />
</protection>
</usernameForCertificateSecurity>
<requireActionHeader />
</policy>
However the signatureOption attributes always tick off intellisense with
this warning:
The 'signatureOptions' attribute is invalid - The value 'IncludeAddressing,
IncludeTimestamp, IncludeSoapBody' is invalid according to its datatype
'http://schemas.microsoft.com/wse/2005/06/policy:SignatureOptionsType' - The
Enumeration constraint failed.
I have no problems running these services, and frankly it just looks bad
when I do conference presentations and I have to always say "just ignore
that".
Does anyone know what the scoop is on this?
Thanks
Julie
Pablo Cibraro - 30 Mar 2006 19:47 GMT
Hi Julie,
It is a problem with the WSE xml schema used by Visual Studio. C:\Program
Files\Microsoft Visual Studio 8\Xml\Schemas\wsePolicy.xsd
It defines the signatureOptions type as an enumeration,
<xs:simpleType name="SignatureOptionsType">
<xs:list>
<xs:simpleType>
<xs:restriction base ="xs:string">
<xs:enumeration value="IncludeNone"/>
<xs:enumeration value="IncludeAction"/>
<xs:enumeration value="IncludeMessageId"/>
<xs:enumeration value="IncludeFaultTo"/>
<xs:enumeration value="IncludeFrom"/>
<xs:enumeration value="IncludeReferenceProperties"/>
<xs:enumeration value="IncludeRelatesTo"/>
<xs:enumeration value="IncludeReplyTo"/>
<xs:enumeration value="IncludeTo"/>
<xs:enumeration value="IncludeReferenceParameters"/>
<xs:enumeration value="IncludeAddressing"/>
<xs:enumeration value="IncludeTimestamp"/>
<xs:enumeration value="IncludeSoapBody"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
However, you can specify more than one value separated by a comma in the
signatureOptions attribute and that is not supported by the xml schema.
<xs:attribute name="signatureOptions" type="tns:SignatureOptionsType"
use="optional"/>
There is no way to fix it unless you change that element to use a xs:string
type.
<xs:attribute name="signatureOptions" type="xs:string" use="optional"/>
Regards,
Pablo Cibraro
http://weblogs.asp.net/cibrax
> This problem did not go away with the RTMs of VS2005 and WSE 3.0.
>
[quoted text clipped - 41 lines]
>
> Julie