2
dbcontext에 액세스하여 사용자 정의 정책 기반 권한 부여에서 내 테이블 데이터와 세션을 가져올 수 있습니까? 누구나 그것을 달성하는 방법을 도울 수 있습니까?사용자 정의 정책 기반 권한 부여에서 dbcontext & session에 액세스하는 방법
services.AddAuthorization(options =>
{
options.AddPolicy("CheckAuthorize",
policy => policy.Requirements.Add(new CheckAuthorize()));
});
services.AddSingleton<IAuthorizationHandler, CheckAuthorize>();
public class CheckAuthorize : AuthorizationHandler<CheckAuthorize>, IAuthorizationRequirement
{
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CheckAuthorize requirement)
{
if() //check session to verify user is logged in or not
{
//redirect to login page
}
else
{
if()//access dbcontext get data from database table to validate user access
{
//redirect to access denied page
}
}
throw new NotImplementedException();
}
}
귀하의 답변에 감사드립니다. 나는 그것을 통해 UR 코드를 기반으로해볼 것이다. 그렇다면 세션 값을 얻고 리디렉션하는 것은 어떻습니까? – WolfPack
이것은 모두 문서화되어 있습니다. Session은 DI 서비스 인 ISession입니다. 리디렉션의 의미를 알 수 없습니다. – blowdart
모두 dbcontext & Session은 DI 서비스입니다. 리디렉션은 사용자 액세스 유효성 검사가 거 ~ 인 경우 사용자를 로그인 페이지로 가져오고 거부 된 페이지에 액세스 함을 의미합니다. – WolfPack