2
WebClient를 사용하는 샘플 콘솔 앱에서 ASP.NET webapi 서비스에 연결하는 데 문제가 있습니다.WebApi의 NetworkCredentials 및 Authorization
public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
if (actionContext.Request.Headers.Authorization == null)
{
var response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
response.Headers.Add("WWW-Authenticate", "Basic realm=\"localhost\"");
actionContext.Response = response;
return;
}
}
클라이언트 코드가 보통이다 : 컨트롤러가 사용자 정의 인증합니다 속성들로 장식되어
public HttpResponseMessage Get()
{
return Request.CreateResponse(HttpStatusCode.OK, new string[] { "value1", "value2" });
}
다음 webapi는 MVC4에서 전형적인 샘플 사이트입니다
var wb = WebRequest.Create("http://localhost:64921/Values");
wb.Credentials = new NetworkCredential("xxx", "xxx");
var aaa = wb.GetResponse();
Console.WriteLine(aaa);
Console.ReadLine();
자, 나는 WebClient
또는 WebRequest
이 자격 증명을 보내기 전에 401을 기다리는 것으로 알고 있으며 그것이 바로 내가 여기서하려고하는 것입니다.
위의 설정으로 말할 것도없이 아무 것도 작동하지 않습니다. 나는 IIS 명시 적 설정으로 간 다음과 같은 변경 :
<basicAuthentication enabled="true" /> (in the security section)
<add name="BasicAuthenticationModule" lockItem="false" /> (in the modules section)
401 서버 코드가 actualy 명중도 전에 반환됩니다 있다는 것입니다 내가 데 문제. 컨트롤러 나 애트리뷰트에 브레이크 포인트를 꽂으면 히트되지 않습니다. 오류에 대한 자세한 내용은 오류 401.2에 대한 일반적인 긴 텍스트입니다. IIS configs와 관련이 있지만, IIS를 사용하면 멋진 IIS가 아니라이를 해결할 좋은 GUI가 없습니다. 누구든지 도와 줄 수 있습니까?
고맙습니다.