IT Share you

Asp.Net Identity DataBase 첫 번째 접근 방식 사용

shareyou 2021. 1. 7. 19:55
반응형

Asp.Net Identity DataBase 첫 번째 접근 방식 사용


Asp.Net 최신 MVC 버전 을 테이블에 추가 열이있는 기존 데이터베이스 와 통합해야 String Address합니다.dbo.AspNetUsers

ApplicationUser주소 속성이 있는 인스턴스를 만들어야합니다 .

어떻게하는지 아십니까?


나를 위해 작동하는 가능한 솔루션, 기본적으로 Asp.Net Identity 사용자 프로필을 기존 데이터베이스와 통합 할 수 있습니다.

Asp. 식별 테이블 얻기 :

  • 인증 개별 사용자 계정으로 MVC 프로젝트 만들기
  • Web.config의 DefaultConnection 아래에 나열된 DB를 엽니 다. (aspnet- [timestamp] 또는 이와 유사한 이름으로 호출됩니다.)
  • SQL Server Management Studio (mdc 용 데이터베이스 연결)를 사용하여 데이터베이스 테이블을 스크립팅합니다.

또는 http://identity.codeplex.com/ 과 같은 것을 사용하십시오.

기존 db와 통합 :

  • SQL Server Management Studio의 기존 데이터베이스에 스크립팅 된 테이블을 삽입합니다.
  • ApplicationUser에 관계를 사용자 정의하고 추가합니다 (필요한 경우).
  • 새 웹 프로젝트 만들기> MVC> DB 첫 번째 프로젝트> EF를 사용하여 DB 가져 오기 ....
  • IdentityModels.cs에서 ApplicationDbContext : base ( "DefaltConnection")를 변경하여 프로젝트의 DbContext를 사용합니다.

이제 애플리케이션의 ER 모델이있는 db에 Asp.Identity Tables가 있습니다.

Asp. Identity Profile 새 속성 추가 :

  • VS에서 도구 '패키지 관리자 콘솔'로 이동하여 Entity Framework Code First 데이터베이스 마이그레이션을 활성화합니다.
  • "Enable-Migrations"명령을 실행합니다. 데이터베이스 마이그레이션을 활성화했으면 계속해서 UserProfile에 대한 새 속성을 추가 할 수 있습니다.

  • 새 속성을 추가하려면 IdentityModels.cs 파일을 수정합니다. 예 :


public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailID { get; set; }
}

새 마이그레이션 추가

  • 속성을 추가했으면 패키지 관리자 콘솔을 가져 와서 다음 명령을 실행합니다.

    추가 마이그레이션 "YouMigrationName"

이 명령은 데이터베이스 스크립트 파일을 생성하고 이제 다음 명령을 실행하여 데이터베이스에 대해이 스크립트 파일을 실행합니다.

Update-Database

이제 모든 새 속성이 동일한 데이터베이스 테이블의 테이블 필드로 바뀝니다.

다른 사람들에게 도움이되기를 바랍니다. 더 좋은 아이디어가 있으면 알려주세요.


저는 Database First를 통해 Identity Framework 2.0과 기존 데이터베이스를 성공적으로 통합했습니다. 여기 에 ASP.NET MVC 5, Identity Framework 2.0 및 Visual Studio 2013 업데이트 2 RTM의 SPA 템플릿을 사용 하는 블로그 게시물을 작성했습니다 .

내가 스스로 알아 내야했던 한곳에 나열되지 않은 몇 가지 요점을 포함하고 있기 때문에 이것이 그들의 여정에서 누구에게나 도움이되기를 바랍니다.


GitHub에서 다음 프로젝트를 살펴보세요.

여기에는 다음이 포함됩니다.

  • ASP.NET Identity 2.0 용 SQL 데이터베이스 프로젝트 템플릿
  • Entity Framework 데이터베이스 우선 공급자
  • 소스 코드 및 샘플

enter image description here


공개 클래스 MyUser : IdentityUser {공개 가상 MyUserInfo MyUserInfo {가져 오기; 세트; }}

public class MyUserInfo{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 
public class MyDbContext : IdentityDbContext<MyUserInfo> //Edited to MyUserInfo
{ 
    public MyDbContext() 
        : base("DefaultConnection") 
    { 
    } 
    public System.Data.Entity.DbSet<MyUserInfo> MyUserInfo { get; set; } 
 } 

프로필 정보 얻기

사용자가 로그인하면 다음을 수행하여 프로필 정보를 표시 할 수 있습니다. 현재 로그인 상태 가져 오기를 수행하여 UserIdASP.NET Identity System에서 사용자를 조회 할 수 있습니다.

var currentUserId = User.Identity.GetUserId(); 

UserManager시스템에서 사용자를 조회 할 수 있도록 in ASP.Identity 시스템을 인스턴스화하십시오 .

var manager = new UserManager<MyUser>(new UserStore<MyUser>(new MyDbContext())); 

사용자 개체 가져 오기

var currentUser = manager.FindById(User.Identity.GetUserId()); 

Get the profile information about the user

currentUser.MyUserInfo.FirstName 

ReferenceURL : https://stackoverflow.com/questions/20668328/using-asp-net-identity-database-first-approach

반응형