ID 스케폴드는 솔루션 탐색기에서 몇번의 크릭만으로 설치는 됩니다. 그러나 그렇게 설치해서 사용하면 이후에 많은 문제들을 만나게 될 것입니다.
MicroSoft 도움말의 설치 방법을 잘 읽고 순서대로 설치하여야 하는데 이때도 역시 주의해야 합니다. 설치를 위한 도움말이 한페이지에 정리되어 있지 않으므로 여러 페이지를 모두 다 숙지하고 순서대로 작업을 해야 합니다.
설치 순서
1. 프로젝트를 만듭니다. (Core 6 웹앱 MVC) 인증유형: 개별개정
2. 모델 사용자 지정 하기
가) ApplicationUser.cs이름의 크라스를 만듭니다. (반드시 Areas/Identity/Data/ApplicationUser.cs 폴더에 만들어야 합니다. )
public class ApplicationUser : IdentityUser
{
}
나) ApplicationDbContext 를 수정합니다.
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
다) Pages/Shared/_LoginPartial.cshtml를 수정합니다
@using Microsoft.AspNetCore.Identity
@using WebApp1.Areas.Identity.Data
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
라) Program.cs 에서 아래와 같이 수정합니다.
builder.Services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
(도움말 : https://docs.microsoft.com/ko-kr/aspnet/core/security/authentication/customize-identity-model?view=aspnetcore-6.0)
3. ASP.NET Core 프로젝트의 스캐폴드 Identity 설치
가) RuGet 펙키지를 설치합니다.
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 6.0.2
나) 이상을 완전하게 마쳐야 Identity 스케폴드를 설치할 준비가 된 것입니다.
이제 Identity 스케폴드를 설치합니다.
솔루션 탐색기에서 프로젝트 AddNew스캐폴드 에서 설치
주의사항: 반드시 ~/Views/Shared/_Layout.cshtml 를 선택해야 합니다.
다) 스케폴드 설치 후에 반드시 Database 마이그레이션을 해야 합니다.
Install-Package Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
Add-Migration CreateIdentitySchema
Update-Database
(도움말 : https://docs.microsoft.com/ko-kr/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-6.0&tabs=visual-studio)
첫댓글
program.cs 파일 내용중에 builder.Services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
=> ApplicationUser 수정도 해야겠군요.~ 좋은 정보 감사합니다.
그리고 asp.net core mvc 형태로 템플릿을 만들고,위와 같이 identity 를 생성하면 PageModel 형태로 구성되더군요.. 왜 mvc 형태를 버렸는지 아쉽더군요.~
저는 더 편한 것 같던데 PageModel 형태가 장단점이 있나요?
@feededit 아닙니다 ;) web form 같아서 그리 생각해 봤습니다.
강의 내용이라서 이쪽 카테고리로 이동하였습니다. ~ 쪽지 드렸습니다.
ㅎㅎ 오류. 도움만 받다가 한번 나도 다른 분들께 도움될만한 것을 올린 건데 역시 기초 부족이 금새 표시가 나네요.
도움 많이 되었습니다. ;)
이 글은 Version 6.0.2에서 올린 글인데 오늘 현재 Version 6.0.7이고 이 글의 순서대로 하면 에러가 납니다. 이 글에 링크해드린 도움말도 좀 바뀐 것 같습니다. 도움말 링크를 참고하세요.