Hi all, I have a simple Web Service with UsernameForCertificate policy
enabled. Right now the method returns "Hello World". I then have a simple
asp.net client project that I am using to test calling the Web Service. I
have configured the policy on both ends. However when I run the client I get
the following error:-
Security requirements are not satisfied because the security header is not
present in the incoming message.
InvalidOperationException: Security requirements are not satisfied because
the security header is not present in the incoming message.]
Microsoft.Web.Services3.Security.SecureConversationClientReceiveSecurityFilter.ValidateMessageSecurity(SoapEnvelope
envelope, Security security) +128
Microsoft.Web.Services3.Security.ReceiveSecurityFilter.ProcessMessage(SoapEnvelope
envelope) +293
Microsoft.Web.Services3.Pipeline.ProcessInputMessage(SoapEnvelope
envelope) +2176
Microsoft.Web.Services3.Messaging.SoapClient.SendRequestResponse(String
methodname, SoapEnvelope envelope) +643
[ResponseProcessingException: WSE910: An error happened during the
processing of a response message, and you can find the error in the inner
exception. You can also find the response message in the Response
property.]
Microsoft.Web.Services3.Messaging.SoapClient.SendRequestResponse(String
methodname, SoapEnvelope envelope) +711
Microsoft.Web.Services3.Security.SecurityTokenServiceClient.RequestSecurityToken(SecurityTokenMessage
request, String methodName) +444
Microsoft.Web.Services3.Security.SecurityContextTokenServiceClient.RequestSecurityContextToken(AppliesTo
appliesTo) +126
Microsoft.Web.Services3.Security.SecurityContextTokenServiceClient.IssueSecurityContextToken(AppliesTo
appliesTo) +30
Microsoft.Web.Services3.Security.Tokens.SecurityContextTokenManager.RequestTokenFromIssuer(EndpointReference
tokenIssuer, String tokenType, AppliesTo appliesTo, Policy policy,
SoapProtocolVersion soapVersion, StateManager messageState, StateManager
operationState, StateManager sessionState) +450
Microsoft.Web.Services3.Security.SecureConversationClientSendSecurityFilter.EstablishSecureConversation(SoapEnvelope
envelope) +426
Microsoft.Web.Services3.Security.SecureConversationClientSendSecurityFilter.SecureMessage(SoapEnvelope
envelope, Security security) +483
Microsoft.Web.Services3.Security.SendSecurityFilter.ProcessMessage(SoapEnvelope
envelope) +359
Microsoft.Web.Services3.Pipeline.ProcessOutputMessage(SoapEnvelope
envelope) +2292
Microsoft.Web.Services3.Xml.SoapEnvelopeWriter.Finish() +97
Microsoft.Web.Services3.Xml.XmlWrappingWriter.Flush() +49
System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage
message) +774
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) +206
localhost.MyServiceWse.HelloWorld() in
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\test
dmsone\ec5ccc04\db2d795d\App_WebReferences.gpcnbap2.0.cs:46
_Default.DoTheWork() in c:\VS 2005 Code\Test DMSOne\Default.aspx.cs:30
_Default.Page_Load(Object sender, EventArgs e) in c:\VS 2005 Code\Test
DMSOne\Default.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o,
Object t, EventArgs e) +31
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,
EventArgs e) +68
System.Web.UI.Control.OnLoad(EventArgs e) +88
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3035
Any ideas?
TIA
Gaurav Vaish (EduJini.IN) - 14 May 2006 03:12 GMT
> Security requirements are not satisfied because the security header is not
> present in the incoming message.
>
> InvalidOperationException: Security requirements are not satisfied because
> the security header is not present in the incoming message.]
Enable tracing for messages as well as policy.
<trace enabled="true" input="C:\InputTrace.webinfo.xml"
output="C:\OutputTrace.webinfo.xml" />
<policyTrace enabled="true" input="C:\PolicyInputTrace.webinfo.xml"
output="C:\PolicyOutputTrace.webinfo.xml" />
Check the details of the fault and you'd get details of which policy fails
(from PolicyInput/OutputTrace.webinfo.xml).
It seems that the service requires Authentication. Check the policyCache.xml
(or whatever you are using) for the policies.
--
Cheers,
Gaurav Vaish
http://www.mastergaurav.org
http://www.edujini.in
-------------------
jwillhite - 26 May 2006 17:36 GMT
I was having the same problem. I kept getting an error message when I
would run my Client application. The message would say, something like
"Security requirements are not satisfied because the security header is
not present in the incoming message..." It was an WSE910 error. Anyway,
it seems you have to allow WSE to have permission to obtain X.509
certificates from the Local Computer certificate store. These steps
seemed to help (I got these from
"http://soa.sys-con.com/read/43973.htm"):
1. ) Right-click the project in the Visual Studio "Solution Explorer"
window and select "WSE Settings 3.0..." This displays the WSE Settings
Tool.
2.) In the "Security" tab (see Figure 4), set "Store Location" to
"localMachine" if the project is a Web service and to currentUser if
the project is a client application.
3.) To make X.509-based authentication work using test certificates,
check "Allow Test Roots" and check"Verify Trust" checkboxes in the
"Security" tab. (Note that you would never do this outside of
development and test environments.)
4.) Click "OK" to close the WSE Settings tool. WSE automatically
modifies the appropriate configuration file for the application and
adds Microsoft.Web.Services.dll to the list project references.
That should help... please reply to this to let me know if it did help
or not.
khalid zaheer - 29 Dec 2006 12:42 GMT
hello i have the same problem followed the procedure
but the problem didn't solved
i m using x509 certificates to secure server and client
thanx