MVC 응용 프로그램에 XML을 보내고 다른 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 쿠키를 사용합니다. Windows 통합 인증이 필요하거나 콘솔 응용 프로그램을 사용하여 먼저 "로그인"을 수행해야합니다. – bzlm