예제의 사용자 이름과 비밀번호는 HTTP 기본 인증을 사용합니다. URL의 일부가 아니며 헤더 정보에 포함되어 있습니다. ASP.NET에서이 정보에 액세스 할 수 있습니다.이 문서를 참조하십시오. Basic Authentication with Asp.Net WebAPI
public class BasicAuthenticationAttribute : System.Web.Http.Filters.ActionFilterAttribute {
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext) {
if (actionContext.Request.Headers.Authorization == null){
// No Header Auth Info
actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);
} else {
// Get the auth token
string authToken = actionContext.Request.Headers.Authorization.Parameter;
// Decode the token from BASE64
string decodedToken = Encoding.UTF8.GetString(Convert.FromBase64String(authToken));
// Extract username and password from decoded token
string username = decodedToken.Substring(0, decodedToken.IndexOf(":"));
string password = decodedToken.Substring(decodedToken.IndexOf(":") + 1);
}
}
}
이것은 어리석은 질문 일 수 있습니다. 그러나 OnActionExecuting 화재는 언제 발생합니까? – Tom
http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onactionexecuting(v=vs.98).aspx - Controller 클래스의 모든 Action 메서드에서 호출됩니다. 내 ASP.NET 지식은 그 이후로 약간 날짜가 지났지 만, 나는 꽤 오랫동안 그것을 사용하지 않았습니다 ... – doublesharp