[WebAPI Basic Authentication Authorization Filter]을 사용하여 간단한 웹 API 데이터 서비스를 사용할 때 사용자를 인증합니다.WebAPI 기본 인증 권한 필터 및 기계 키
질문 : 모든 것이 localhost에서 작동하지만 웹에 서비스를 게시 할 때 (http://www.mywebsite.com) 클라이언트 응용 프로그램은 항상 "Unauthorize"응답을 얻습니다.
이 라인은 원격 IIS 관리자 있지만 그래도 문제를 사용하여 시스템 키를 추가로 시도 웹
//client.BaseAddress = new Uri("http://localhost:11992/"); // on localhost work
client.BaseAddress = new Uri("http://mywebsite.com/"); // returns 401 Unauthorized
에 로컬 호스트로부터 전환 할 때 I는 (클라이언트 측)를 변경하는 모든 것이다. 아직 그다지 일
다음과 같이 IIS에
참조 system.web (Web.config의)이 시스템 키
인증 모드이다. 분명히 나는 여기서 뭔가를 놓치고있다.
업데이트 나는 기본 인증을 확장하고 있습니다. 필터 (나중에 클라이언트 측에서 액세스하는 컨트롤러 동작에 적용) 필터
및이 사용자 지정 인증 내부. 하드 사용자 이름이 필터링
public class MyBasicAuthenticationFilter : BasicAuthenticationFilter
{
public MyBasicAuthenticationFilter()
{ }
public MyBasicAuthenticationFilter(bool active)
: base(active)
{ }
protected override bool OnAuthorizeUser(string username, string password, HttpActionContext actionContext)
{
if (username == "myuser" && password == "mypass")
return true;
else
return false;
}
}
을 전달하고 클라이언트 측에서 내가 혼란 스러워요
client.BaseAddress = new Uri("http://mywebsite.com/");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "myuser", "mypass"))));
(클라이언트 WPF) 때문에 동일한 코드 작업 로컬 호스트에 잘하지만 난 코드를 게시하고이 클라이언트를 변경할 때. 내 실제 웹 사이트 URL에 BaseAddress는 401 오류를 반환합니다.
코드 예제를 확장하여 사용자 자격 증명을 설정하는 방법을 보여 주시겠습니까? 401 unauthorized는 자격 증명이 제공되지 않았거나 제공된 자격이 유효하지 않음을 의미합니다. 인증하는 사용자 계정이 서버에 있습니까? 참고 : 기본 키는 컴퓨터 키를 사용하지 않습니다. – Adrian
@Adrian, 질문이 업데이트되었습니다. – user1765862
연장중인 "WebAPI 기본 인증 필터"란 무엇입니까? 질문의 링크가 기계 키 이미지로 이동합니다. 이 링크가 올바른 링크인지 확인하십시오. http://weblog.west-wind.com/posts/2013/Apr/18/A-WebAPI-Basic-Authentication-Authorization-Filter – Adrian