Como autenticar em um aplicativo ASP.NET MVC a partir de um aplicativo de console

Eu tenho um aplicativo de console que envia um XML para um aplicativo MVC e recebe outro XML como uma resposta. Funciona perfeitamente, mas quero adicionar autorização (por razões óbvias).

Aqui está o código do aplicativo de console:

<code>using (var wc = new WebClient())
{
    return GetXmlFromBytes(
        wc.UploadData("URL", GetBytesFromXml(xmlToSend))
    );
}
</code>

E aqui está o código do aplicativo MVC:

<code>public ActionResult DoSomething()
{
    XElement xml = XElement.Load(new System.IO.StreamReader(Request.InputStream));
    var response = InsertDataFromXml(xml);
    return File(GenerateFileFromResponse, "text/xml", "result.xml");
}
</code>

E isso funciona. Então, para implementar a autorização, adicionei o seguinte código:

Console (adicionado owc.Credentials):

<code>using (var wc = new WebClient())
{
    wc.Credentials = new NetworkCredential("user", "password");
    return GetXmlFromBytes(
        wc.UploadData("URL", GetBytesFromXml(xmlToSend))
    );
}
</code>

Aplicação MVC (adicionou o[Authorize]):

<code>[Authorize]
public ActionResult DoSomething()
{
    XElement xml = XElement.Load(new System.IO.StreamReader(Request.InputStream));
    var response = InsertDataFromXml(xml);
    return File(GenerateFileFromResponse, "text/xml", "result.xml");
}
</code>

E isso não funciona. Eu não sei se esta informação é necessária para resolver isso, mas meuweb.config tem o seguinte item:

<code><authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication> 
</code>

Na verdade, o arquivo que o aplicativo MVC envia de volta é o HTML da página Logon!

O que tenho que fazer para resolver isso? Algum parâmetro está faltando noNetworkCredentials? Eu sei que pode ser instanciado com umdomain, mas eu não sei qual é o domínio dos usuários no aplicativo MVC.

E, só para ter certeza: assegurei que "user" e "password" são válidos.

questionAnswers(3)

yourAnswerToTheQuestion