본문 바로가기

Asp.net (C#.net)

Asp.Net Core 3.1 개별 사용자 계정 (1. 기능 재정의(복원))

연재글 Asp.Net Core 3.1 개별사용자 계정

2020/03/26 - [Asp.net (C#.net)] - Asp.Net Core 3.1 개별 사용자 계정 (1. 기능 재정의(복원))

2020/04/06 - [Asp.net (C#.net)] - Asp.Net Core 3.1 개별 사용자 계정 (2. 패스워드 정책 변경)

2020/04/07 - [Asp.net (C#.net)] - Asp.Net Core 3.1 개별 사용자 계정 (3. 가입 시 이메일 인증 처리)

2020/04/09 - [Asp.net (C#.net)] - Asp.Net Core 3.1 개별 사용자 계정 (4. Identity Id 컬럼 nvarchar를 int로 변경)

 

 

Visual Studio Community 2019

Asp.Net Core 3.1

 

이제는 코어 버전으로 프로젝트를 생성할때 개별사용자 인증을 사용해도..

관련된 컨트롤러와 파일들이 생성되지않는다. 정확히는 보이지않는다.

그래서 개별 수정을 하려면 난감한 부분이 있다.

그래서 이러한 인증 관련 파일들을 보이게하는 방법입니다.

 

 

1. 프로젝트 생성. 우선 새 프로젝트 만들기를 합니다.

 

 

 

2. 프로젝트 구성 선택. C# 프로젝트인 ASP.NET Core 웹 애플리케이션을 선택해줍니다.

 

 

 

3. 프로젝트 이름과 솔루션 이름은 적당히 해줍니다. 저는 CoreAuth로 했습니다.

 

 

 

4. ASP.NET Core 3.1 버전을 선택하고 웹 응용 프로그램(모델 뷰 컨트롤러)를 선택하고 인증 변경을 눌러줍니다.

 

 

 

5. 인증은 개별 사용자 계정으로 하고 사용자 계정 앱 내 저장으로 선택하고 확인을 눌러줍니다.

 

 

 

6. 인증 부분이 개별 사용자 계정으로 변경되었음을 확인하고 만들기를 눌러줍니다.

 

 

 

7. 프로젝트가 생성되면 프로젝트명에서 마우스 오른쪽을 눌러서 추가 - 스캐폴드 항목 새로 만들기를 선택해줍니다.

 

 

 

8. 창이 뜨면 왼쪽 트리에서 ID를 선택하면 오른쪽 세부항목에 ID가 보입니다. 여기 숨어있었던겁니다. 선택하고 추가를 눌러줍니다.

 

 

 

9. 잠시 후 새 창이 다시 하나 뜨면서 뭐뭐를 재정의(추가) 할 지 물어봅니다. 필요한것만 체크하셔도 되고 모든 파일 재정의를 선택하셔도 됩니다. 구지 기본형태로 사용하실 부분은 재정의할 필요가 없죠. 일단 몽땅 재정의하는걸로 합니다. 그리고 데이터 컨택스트 클래스를 선택하고 추가를 눌러줍니다.

 

 

 

10. Areas 폴더에 가보면 어마어마한 파일들이 생긴것을 볼 수 있고, 리드미 파일이 하나 뜨게 됩니다. 자세히 살펴보면 컨트롤러는 따로없고 각 뷰 파일 하단에 코드 비하인드가 생긴것을 볼 수 있습니다. 명칭이 코드 비하인드가 정확한건지는 잘 모르겠네요. 익숙하다보니...;;

결론은 cshtml은 기존에 뷰파일로 보시면 되고 cshtml.cs는 컨트롤러 처럼 보시면 됩니다.

 

 

 

11. 도구 - NuGet 패키지 관리자 - 패키지 관리자 콘솔을 실행합니다.

 

 

 

12. 마이그레이션 추가 합니다. 패키지 관리자 콘솔에서 아래처럼 마이그레이션을 추가합니다. 마이그레이션 이름은 적당한걸로 입력하시면 됩니다. 저는 Apply_Identity_Schema 로 했습니다.

PM> Add-Migration [적당한 마이그레이션 이름]

Ex) PM> Add-Migration Apply_Identity_Schema

 

 

 

13. 잘되었다고 메시지가 나왔습니다. Data\Migrations에 들어가면 마이그레이션이 잘되었음을 확인할 수 있습니다.

 

 

 

14. 이제는 Database에 Update 해줍니다. 패키지 관리자 콘솔에서 다시 한번 명령어를 쳐 줍니다.

PM> Update-Database

 

 

 

15. 이번에도 잘 처리되었습니다.

 

 

 

16. F5를 눌러서 테스트를 해봅니다. 아래와 같이 페이지가 뜨면 Register를 클립합니다.

 

 

 

17. 등록화면 입니다. 패스워드 정책이 매우 막강합니다.ㅡ_ㅡ;;

 

 

 

18. 등록했더니 이메일 인증까지하라고 하네요. 우선은 여기까지오면 잘 등록된것입니다.

 

 

ps. 코드 비하인드는 직접 살펴보시길 권합니다. 기존에 AccountController를 보셨던 분들은 큰 거부감은 없을겁니다.

바로 패스워드 정책에 대한 부분 수정과 이메일 인증 부분에 대해서 포스팅하려고 하는데 잘될지는 모르겠습니다. 별로 긴 내용은 아닌데 바로 포스팅하도록 노력해보겠습니다.