This is what I use for manipulating cURL in PHP:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://url/");
curl_setopt($ch, CURLOPT_USERAGENT, "Useragent");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=UTF-8'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_POSTFIELDS, "postdata");
$data = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
I understand that you might not be able to modify the PHP code, but if you have access to a server with PHP, you could try this code to see if anything returns from your ASP.NET MVC 3 authentication service. Then make the appropriate edits in your .NET code to make it play nice in PHP.
Here's some example ASP.NET MVC 3 code:
[HttpGet]
public ActionResult SomeAction(string someParam)
{
return View();
}
You will need to edit your routing definitions in your Global.asax.cs code to accept querystring-less urls. For example you could setup a route like this:
routes.MapRoute(
"API/SomeAction/SomeParam",
"api/someaction/{someParam}",
new { controller = "API", action = "SomeAction" }
);
As far as processing post data from cURL, you'll need to see the content type that is being sent from cURL and handle the data appropriately.