2016-08-26 3 views
2

나는 새로운 ASP.NET 핵심 프로젝트를 설정하고있어 내 MVC 프로젝트에서, 나는 사용자 등록 ID를 사용하고자하는/로그인 등추출 신원이

내가 할 수있는 내 자신의 쓰기,하지만 난 정말 내 컨트롤러 및 작업 인증 특성을 사용하고 싶습니다.

그러나 MVC 프로젝트에 Entity/DBContexts에 대한 직접 종속성이 없도록 Identity 부분을 별도의 프로젝트에 추출하려고합니다. 정체성과 새로운 MVC 프로젝트를 생성 할 때

, 그것은 생성 :

  • 서비스
  • 마이그레이션
  • ApplicationDBContext에

뿐만 아니라 가진 참조 :

  • 을 Microsoft.AspNetCore.Identity .EntityFrameworkCore
  • Microsoft.EntityFramework. *

이 내 컨트롤러 그냥 프로젝트에서 서비스를 사용하는 별도의 프로젝트로 모든 Identity 코드를 추출하기위한 어떤 쉬운 방법이 있나요 (의 생성자 주입 컨트롤러)?

+0

멀티 테넌트 ID를 구현하는 프로젝트에서이 작업을 수행했습니다. https://github.com/joeaudette/cloudscribe –

+0

정말 멋집니다. 나는 비슷한 것을 시도 할 것입니다. 그냥 다시 보았을 때, 그것을 별도의 프로젝트에 추출하는 것이 "간단하다". 고맙게도 다중 소유에 대해 걱정할 필요가 없습니다. – Elias

답변

0

UI/MVC 계층이 Db/Storage 계층을 직접 참조하지 않도록 프로젝트 참조를 계층간에 구분하는 방법은 프로젝트의 다른 계층에있는 IServiceCollection에서 확장 메서드를 만드는 것입니다.

UI가 비즈니스/서비스 계층을 참조하고 비즈니스/서비스 계층에있는 IServiceCollection의 확장 메서드를 호출하면 이러한 메서드는 Db/저장소 계층에서 확장 메서드를 호출 할 수 있습니다. 예와

비슷한 질문 here

하지만 당신은 별도의 클래스 라이브러리로 EF 코드를 이동할 때,이 실행 EF는 마이그레이션이 작동하지 않습니다 생성 명령을 몇 가지 알려진 문제에 대해 설명합니다. 클래스 라이브러리를 자체 Startup 클래스가있는 응용 프로그램/콘솔 응용 프로그램으로 만들면이 문제를 해결할 수 있습니다. 내 이해는 나중에 수정 될 것입니다.