layout: post title: asp.net legacy system에 vuejs & nodejs system 적용하기(2탄) categories: [dev] author: 노혜진 email: [email protected] date: 2022-04-01 tag:


지난 1탄에서 .NET 과 node를 통합하는 Architecture와 화면 통합을 위한 UI 측면에서 구조적으로 설명을 했다면 2탄에서는 구현 sources 및 deploy 방법에 대해 정리해 보겠습니다.

.NET WebForm Application 과 .NET MVC Appication 인증 공유

Legacy ASP.NET WebForm Applcation과 분리된 .NET MVC Application 프로젝트를 분리 구성한 형태에서 아래 사항을 고려해야 했습니다.

- 기존 legacy에서 인증된 사용자는 .NET MVC Application 에서도 추가 인증없이 사용 (기존의 asp.NET Forms 인증을 그대로 사용)
- 사용자 유효성 및 메뉴별 권한 체크 방식 동일하게 적용

기존 legacy에서는 domain form authentication 방식을 사용하고 있습니다. 두개의 프로젝트가 윈폼 인증 정보를 공유하도록 하려면 몇가지 처리가 필요합니다.

  1. 하나의 사이트에 MVC 소스를 가상폴더 대신 사이트 하위에 응용프로그램으로 설정했습니다. 라이브러리가 분리되어 있고 별도의 web.config를 구성해야 했기 떄문입니다.
  2. 기존 legacy와 신규 mvc 두 응용프로그램이 동일한 worker process를 사용하도록 했습니다. 즉 IIS에서 사이트 셋팅시 동일한 어플리케이션 풀(application pool)을 사용하도록 셋팅합니다.
  3. 두개 응용프로그램 web.config의 설정 값을 아래와 같이 적용했습니다.
<authentication mode="Forms">
  <forms name="TestAuth" defaultUrl="~/" path="/" loginUrl="/Login.aspx" protection="All" enableCrossAppRedirects="false" />
</authentication>
<machineKey validationKey="~~" decryptionKey="~~" validation="SHA2" decryption="3DES" compatibilityMode="Framework20SP1" />

.NET MVC Project에서 사용자 인증 validation 및 오류 처리

기존 legacy에서 인증 여부를 확인하고 권한 체크 등 기본적인 제어를 다수의 page에서 공통으로 사용하기 위해 기본 Page를 만들어 사용하고 있습니다. 적용 환경(development, test, production)별 처리도 여기에 포함됩니다.