this 자습서를 사용하여 기본 인증으로 웹 API 호출을 보호합니다. 기본적으로 요청에 인증 헤더가 있는지 확인한 다음 데이터베이스에 대해이 헤더를 증명합니다.기본 인증 최적화 : 후속 요청에 대한 사용자 인증 저장
public static bool CheckPassword(string user, string password)
{
//Do a Database checkup
if(CheckDB(user,password)) {
//if true, set the principal
var identity = new GenericIdentity(user);
SetPrincipal(new GenericPrincipal(identity,null));
}
else {
//return 401...
}
}
private static void SetPrincipal(IPrincipal principal)
{
Thread.CurrentPrincipal = principal;
if (HttpContext.Current != null)
{
HttpContext.Current.User = principal;
}
}
이것은 정상적으로 작동합니다. 하지만 내가하는 모든 요청에 대해 데이터베이스를 쿼리합니다. JavaScript 파일을 요청한 경우에도 마찬가지입니다.
이 프로세스를 최적화하고 첫 번째 요청시 CheckDB()
을 호출하기를 원합니다. 다음 요청은 다른 데이터베이스 요청이 필요하지 않아야합니다. 교장을 구제하는 것이 가능합니까? Thread.CurrentPrincipal
을 확인하려고했으나 모든 요청에 대해 다시 초기화해야합니다.