최근에 릴리스 된 ASP.NET ID 2.0.0을 3 계층 MVC 응용 프로그램에 통합하려고합니다. 나는 올바른 방향으로 가고 있는지 확신하지 못한다. 나는 두 가지 접근법을 볼 수 있습니다.MVC5 아키텍처 조언의 ID 2.0.0
첫 번째 방법에서는 각 논리 계층에 ID를 통합하는 방법을 사용했습니다. 기술적 인 문제가 있지만 아직 개발 중입니다.
두 번째 방법은 보안을 위해 전용 캡슐화 된 어셈블리로 이동하십시오.
나는 현재 접근 방식 1로 갔지만 모두 의문입니다. 또한, 다른 접근법을 취할?
접근 한
Web
Startup.cs
/App_Start/Startup.Auth
/Controllers/Account
/Controllers/Manage
/Controllers/RolesAdmin
/Controllers/UserAdmin
/ViewModels
/Views
Business Logic
/Service/AccountService
/Service/ApplicationRoleManager
/Service/ApplicationUserManager
/Service/EmailService
/Service/SmsService
/Service/SignInHelper
Data
ApplicationDbContext
ApplicationUser
그래서, 나는 단순히 정체성을 가지고 각 내가 볼 계층이 맞는로를 연결했습니다. 웹에 속해 있지 않고 데이터 레이어에 속하는 '실제'데이터베이스 코드가 없기 때문에 대부분의 로그를 비즈니스 로직 레이어에 넣었습니다.
사이드 문제는 다음 Busness 논리 객체가 데이터 층에서
app.CreatePerOwinContext(ApplicationDbContext.Create);
전화 나 웹/App_Start/Startup.Auth에, 나는 인스턴스화해야한다는 조금 불편 해요. 나는 이것에 대해 아직 생각하지 못했습니다. 이것은 또 다른 문제입니다 (그러나 내가 선택한 아키텍처와 관련이 있습니다).
에는 레이어가없는 순수한 보안 용 어셈블리를 만들기 접근법 2
단순히이 하나의 어셈블리로 식별 2.0.0 플러그 즉. 그리고 내 응용 프로그램에서이를 참조 할 수 있습니다. 그것은 레이어에 대항한다. 그러나 보안을 캡슐화합니다. 보안 개체가 응용 프로그램 수명 기간 동안 상주 할 수 있거나 제공되어야한다는 점을 감안할 때 이는 전혀 좋지 않은 것처럼 보입니다. 그래도 확장성에 대해서는 생각해 보지 않았습니다.
안녕 켈소, 이것은 훌륭한 대답입니다.그러나 MVC와 아이덴티티 2.0을 배우는 나 같은 사람에게는 (여전히 내 머리를 쥐고있다.), 더 많은 질문이 제기된다. 그런 코드를 가진 샘플 공개 프로젝트가 있습니까? 그렇게하면 도움이 될 것입니다. –
아이덴티티 2.0 학습에 도움이되는 프로젝트가 없지만, 궁금한 점이 있으면 기꺼이 도와 드리겠습니다. –
계속 게시 할 예정입니다. :) 현재 엔터프라이즈 디자인 패턴을 검토 중이며 곧 Identity 2.0을 계층에 구현하려고 시도합니다 (즉 접근 1). 위의 답변은 많은 도움이되었습니다. –