Hi I'm connecting to dynamics online using SOAP in C# to add custom entities. The login type being used is a windows live account.
I'm running into an odd error when i try and connect to the server atm, it seems to have just start with little explanation.
When i try and authenticate using windows live I get an xml responce [posted at end] containing an error saying "The credential is blocked."However when i try and connect with a fake username i know is invalid i get "The entered and stored passwords do not match."
I've checked my xml responses and my device is registering fine. Its just the authenticating bit.
Is there a chance the crm has blocked this log in somehow (it still works for logging into the crm itself, just not with this soap log in) ?
Is there a way of white listing a username?
Here is the xml i am sending to get the security tokens:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<a:Action s:mustUnderstand="1">
http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action>
<a:MessageID>
urn:uuid:88dea52e-97a3-4222-82cd-3c4cde5e3e2f</a:MessageID>
<a:ReplyTo>
<a:Address>
http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
<VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">
uIDPozBEz+P/wJdOhoN2XNauvYcAAAAAK0Y6fOjvMEqbgs9ivCmFPaZlxcAnCJ1GiX+Rpi09nSYACQAA</VsDebuggerCausalityData>
<a:To s:mustUnderstand="1">
https://login.live.com/extSTS.srf</a:To>
<o:Security s:mustUnderstand="1"
xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2013-04-19T12:41:25.256Z</u:Created>
<u:Expires>2013-04-19T12:46:25.256Z</u:Expires>
</u:Timestamp>
<o:UsernameToken u:Id="user">
<o:Username>==USERNAME REMOVED FOR POST==</o:Username>
<o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
==PASSWORD REMOVED FOR POST==</o:Password>
</o:UsernameToken>
<wsse:BinarySecurityToken ValueType="urn:liveid:device"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<EncryptedData Id="BinaryDAToken0"
Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc">
</EncryptionMethod>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>http://Passport.NET/STS</ds:KeyName>
</ds:KeyInfo>
<CipherData>
<CipherValue>
==LONG CYPHER VALUE REMOVED FOR POST==
</CipherValue>
</CipherData>
</EncryptedData>
</wsse:BinarySecurityToken>
</o:Security>
</s:Header>
<s:Body>
<t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">
<wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<a:EndpointReference>
<a:Address>urn:crmemea:dynamics.com</a:Address>
</a:EndpointReference>
</wsp:AppliesTo>
<wsp:PolicyReference URI="MBI_FED_SSL"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" />
<t:RequestType>
http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType>
</t:RequestSecurityToken>
</s:Body>
</s:Envelope>
This is the response i get:
<?xml version="1.0" encoding="utf-8" ?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:psf="http://schemas.microsoft.com/Passport/SoapServices/SOAPFault">
<S:Body>
<S:Fault>
<S:Code>
<S:Value>
S:Sender</S:Value>
<S:Subcode>
<S:Value>
wst:FailedAuthentication</S:Value>
</S:Subcode>
</S:Code>
<S:Reason>
<S:Text xml:lang="en-US">
Authentication Failure</S:Text>
</S:Reason>
<S:Detail>
<psf:error>
<psf:value>
0x80048823</psf:value>
<psf:internalerror>
<psf:code>
0x80041010</psf:code>
<psf:text>
The credential is blocked.
</psf:text>
</psf:internalerror>
</psf:error>
</S:Detail>
</S:Fault>
</S:Body>
</S:Envelope>
My problem fixed itself when i got rid of the newline in the c# code between: and i guess the xml might of been putting in a new line character there.
I also removed the tag:" uIDPozBEz+P/wJdOhoN2XNauvYcAAAAAK0Y6fOjvMEqbgs9ivCmFPaZlxcAnCJ1GiX+Rpi09nSYACQAA " as it wasn't needed, (may of been breaking it but i doubt it)