2016-11-09 2 views
4

UserManager 및 UserStore를 사용자 정의하는 것과 약간 혼동됩니다. 상자 솔루션은 EF 구현과 함께 제공되며 EF를 사용하지 않고 MSSQL을 사용하는 자체 DAL을 사용하고 싶습니다. 나는 클레임 ​​기반 보안을 사용자 중 한 명이 클레임에 맡기고 싶습니다.ASP.NET ID - 사용자 정의 UserManager, UserStore

내가 혼란스러워하는 부분은 내가해야하는 전반적인 과정입니다.

  1. 내가이 가진 궤도에 오전 :에서 내가 지금까지 알아 보았 것은 내가 내 자신의

    CustomApplicationUser : IUser 
    CustomUserManager : UserManager<CustomApplicationUser> 
    CustomUserStore : IUserStore, IUserClaimStore 
    

    질문을 할 필요가있다?

  2. 내 CustomUserManager에서 IsInRole() 메서드를 사용하려고하지만 클레임과 함께 수행하는 방법을 모르겠습니다. UserManager.IsInRole()에서 기본 UserManager가 호출하는 IUserRoleStore.IsInRole()이 있음을 알고 있지만 내 DB에는 별도의 역할 테이블이 필요하지 않습니다. 내가 원하는 건 ClaimType 중 하나가 Role이라는 Claims DB 테이블이고 UserManager.IsInRole()이이를 사용한다는 것입니다. 지금 UserManager.IsInRole() 메서드가 필요한 이유는 무엇입니까? 내가 실제로 사용자 지정 ClaimsIdentity SignInManager.CreateUserIdentityAsync()와 같은 것을 가질 필요가 있을까요? 그 중 하나는 Claims를 포함한 모든 사용자 정보를 작성하는 자체 구현을 호출합니까?

나를 혼란스럽게하는 것처럼 보입니다. 그것에 대해 명확한 문서를 찾을 수없는 것처럼 보입니다. 누군가가 그것에 대해 약간의 빛을 줄 수 있다면 나는 그것을 매우 높이 평가할 것입니다!

+1

새로운 패러다임은 클레임을 기반으로합니다. 클레임은 사용자와 관련된 값 (문자열)의 모음입니다. 역할은 클레임으로 구현됩니다. 'IsInRole()'과 다른 역할 관련 API는 오래된 정신 패러다임을 위해 존재합니다. – Sherlock

답변

5

단지 복사하는 대신 다음 기사를 알려 드리겠습니다 : Overview of Custom Storage Providers for ASP.NET Identity.

이 부분을 살펴보면 ASP.NET에서 ID가 작동하는 방식에 대한 좋은 개요를 얻을 수 있습니다. 또한 응용 프로그램에서 재정의하고 사용자 정의하려는 것을 선택하는 데 좋습니다.

+0

이 기사의 .NET Core 버전은 다음과 같습니다. https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-custom-storage-providers –