> 데이터 베이스 > MySQL 튜토리얼 > .NET Core 2.1 ID 사용자 및 관련 역할을 효율적으로 검색하는 방법은 무엇입니까?

.NET Core 2.1 ID 사용자 및 관련 역할을 효율적으로 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-17 15:40:11
원래의
733명이 탐색했습니다.

How to Efficiently Retrieve .NET Core 2.1 Identity Users and Their Associated Roles?

.NET Core 2.1 ID 사용자 및 관련 역할 가져오기

.NET Core ID에서는 사용자 및 관련 역할을 검색하는 것이 어려울 수 있습니다. 이전 버전의 Identity는 ApplicationUser 내에 내장된 역할 속성을 제공했지만 이 기능은 더 이상 존재하지 않습니다.

해결책

이 문제를 해결하려면 다음을 구현하십시오. 솔루션:

ApplicationUser

public class ApplicationUser : IdentityUser
{
    public ICollection<ApplicationUserRole> UserRoles { get; set; }
}
로그인 후 복사

ApplicationUserRol e

public class ApplicationUserRole : IdentityUserRole<string>
{
    public virtual ApplicationUser User { get; set; }
    public virtual ApplicationRole Role { get; set; }
}
로그인 후 복사

ApplicationRole

public class ApplicationRole : IdentityRole
{
    public ICollection<ApplicationUserRole> UserRoles { get; set; }
}
로그인 후 복사

ApplicationDbContext (관계 추가, 시드 구성)

public class ApplicationDbContext
    : IdentityDbContext<ApplicationUser, ApplicationRole, string, IdentityUserClaim<string>,
    ApplicationUserRole, IdentityUserLogin<string>,
    IdentityRoleClaim<string>, IdentityUserToken<string>>
{
    public DbSet<ApplicationUserRole> UserRoles { get; set; }

    // migrations omitted for brevity
}
로그인 후 복사

시작

services.AddIdentity<ApplicationUser, ApplicationRole>(options => options.Stores.MaxLengthForKeys = 128)
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();
로그인 후 복사

Razor 페이지 코드(관련 데이터 즉시 로드)

this.Users = userManager.Users.Include(u => u.UserRoles).ThenInclude(ur => ur.Role).ToList();
로그인 후 복사

ASP 코어 2.2 업데이트

ASP Core 2.2 이상의 경우 IdentityUserRole 문자열이 아닙니다. 또한 성공적인 마이그레이션을 위해서는 ModelBuilder의 코드를 제거해야 할 수도 있습니다.

제안된 해결 방법을 따르려고 했지만 '필드의 알 수 없는 열 'u.Roles.ApplicationUserId'' 오류가 발생했습니다. 목록''. 이 문제를 해결하기 위해 GitHub 의견/문제를 조사하고 위에 설명된 솔루션을 구현했습니다. 주요 수정 사항에는 새 ApplicationUserRole 및 ApplicationRole 클래스 생성, 새로운 관계를 반영하도록 ApplicationUser 클래스 업데이트, DbContext의 모델 작성기에 사용자 지정 구성 추가가 포함되었습니다. 사용자의 UserRole과 UserRole의 역할을 즉시 로드하여 사용자 및 관련 역할을 성공적으로 검색할 수 있었습니다.

위 내용은 .NET Core 2.1 ID 사용자 및 관련 역할을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿