Jak uwierzytelnić się w aplikacji ASP.NET MVC z aplikacji konsoli

Mam aplikację konsolową, która wysyła XML do aplikacji MVC i w odpowiedzi otrzymuje inny XML. Działa doskonale, ale chcę dodać autoryzację (z oczywistych powodów).

Oto kod z aplikacji konsoli:

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

A oto kod z aplikacji 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>

I to działa. Aby wdrożyć autoryzację, dodałem następujący kod:

Konsola (dodanowc.Credentials):

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

Aplikacja MVC (dodano[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>

I to nie działa. Nie wiem, czy ta informacja jest potrzebna do rozwiązania tego problemu, ale mojaweb.config ma następujący element:

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

W rzeczywistości plik, który aplikacja MVC odsyła, jest kodem HTML strony logowania!

Co muszę zrobić, aby rozwiązać ten problem? Czy brakuje parametru wNetworkCredentials? Wiem, że można go utworzyć za pomocądomain, ale nie wiem, jaka jest domena użytkowników w aplikacji MVC.

Aby upewnić się, że: „użytkownik” i „hasło” są ważne.

questionAnswers(3)

yourAnswerToTheQuestion