멀티 테넌트 시스템을 만들고 지금까지 모든 것을 저장하는 데 문제가 없습니다. 따라서이 서비스는 MVC 컨트롤러에서 호출 ASP.NET 코어의 멀티 테넌트 시스템에서 테넌트가 자원을 소유하고 있는지 확인
public interface EmployeeService : IEmployeeService
{
private IEmployeeRepository _employeeRepository;
public EmployeeService(IEmployeeRepository employeeRepository)
{
_employeeRepository= employeeRepository;
}
public Employee GetById(int employeeId)
{
return _employeeRepository.GetById(employeeId);
}
}
이 ID를 가진 직원을 검색 :하지만 이전, 나는 문제에, 나는이 서비스를 비틀 거렸다. 문제는 호출 중에 전달 된 employeeId가 호출하는 임차인이 소유하고 있는지 여부를 확인할 수 있어야합니다. 그렇지 않으면 ID를 입력하고 다른 사람을 검색 할 수 있습니다. 내가 생각할 수있는
가장 쉬운 해결책은 tenantId 포함하는 서명을 변화 :
public Employee GetById(int tenantId, int employeeId)
을하지만 더 나은 방법이 있다면 나는 생각했다. GetById 메서드에는 매개 변수가 하나만 있어야한다고 생각합니다. 어쩌면 나는 그것을 overthinking 오전, 잘 모르겠습니다.
또 다른 방법은 EmployeeService가 인스턴스화 될 때 TenantId가 채워지고 GetById 호출이 사용중인 employeeId를 소유하고 있는지 확인하기 전에 TenantId라는 멤버가 있다고 생각할 수 있습니다. 그러나 ConfigureService의 Startup 중에 EmployeeService가 생성되고 누군가가 성공적으로 로그인하면 TenantId 만 알 수 있기 때문에이 작업을 수행 할 수 없습니다.