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에서 다음 프로젝트를 살펴보세요.
- https://github.com/kriasoft/AspNet.Identity-ID 데이터베이스 프로젝트 + VS 템플릿
- https://github.com/kriasoft/AspNet-Server-Template- 샘플 / 참조 프로젝트
여기에는 다음이 포함됩니다.
- ASP.NET Identity 2.0 용 SQL 데이터베이스 프로젝트 템플릿
- Entity Framework 데이터베이스 우선 공급자
- 소스 코드 및 샘플
공개 클래스 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; }
}
프로필 정보 얻기
사용자가 로그인하면 다음을 수행하여 프로필 정보를 표시 할 수 있습니다. 현재 로그인 상태 가져 오기를 수행하여 UserId
ASP.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
'IT Share you' 카테고리의 다른 글
루프 변수가없는 C ++ 11 범위 기반 for 루프 (0) | 2021.01.07 |
---|---|
Haskell의 DataKinds 확장은 무엇입니까? (0) | 2021.01.07 |
제네릭 메서드는 어디에 저장됩니까? (0) | 2021.01.07 |
이 코드가 Hamcrest의 hasItems 컴파일을 사용하지 않는 이유는 무엇입니까? (0) | 2021.01.07 |
UIScrollView-스크롤 막대 표시 (0) | 2021.01.07 |