我有一個控制檯應用程序,它將XML發送給MVC應用程序並接收另一個XML作爲響應。它完美的工作,但我想添加授權(由於顯而易見的原因)。如何從控制檯應用程序在ASP.NET MVC應用程序中進行身份驗證
下面是從控制檯應用程序的代碼:
using (var wc = new WebClient())
{
return GetXmlFromBytes(
wc.UploadData("URL", GetBytesFromXml(xmlToSend))
);
}
這裏是從MVC應用程序的代碼:
public ActionResult DoSomething()
{
XElement xml = XElement.Load(new System.IO.StreamReader(Request.InputStream));
var response = InsertDataFromXml(xml);
return File(GenerateFileFromResponse, "text/xml", "result.xml");
}
和它的作品。因此,要實現授權,添加以下代碼:
控制檯(添加wc.Credentials
):
using (var wc = new WebClient())
{
wc.Credentials = new NetworkCredential("user", "password");
return GetXmlFromBytes(
wc.UploadData("URL", GetBytesFromXml(xmlToSend))
);
}
MVC應用程序(增加了[Authorize]
):
[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");
}
而且它不」工作。我不知道是否需要這些信息來解決這個問題,但我web.config
有以下項目:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
事實上,該MVC應用程序發回的文件是登錄頁面的HTML!
我需要做些什麼來解決這個問題? NetworkCredentials
中是否缺少任何參數?我知道它可以通過domain
實例化,但我不知道MVC應用程序中用戶的域是什麼。
而且,爲了確保:我確定「用戶」和「密碼」是有效的。
表單身份驗證不起作用 - 它依賴於HTTP cookie。您需要Windows集成身份驗證,或者您需要先使用控制檯應用程序執行「登錄」。 – bzlm 2012-04-05 21:36:27