2016-12-07 1 views
0

asp.net WebAPI 응용 프로그램에서 새 사용자를 만들고, 삭제하고, 로그인하고 로그 아웃하는 데 aspnet ID를 사용하고 있습니다. 내가 새 사용자를 만들 때 자동으로 PasswordHash 및 보안 스탬프를 데이터베이스에 저장합니다. 하지만 지금은 암호 소금 문자열을 데이터베이스에 저장하고 싶습니다. 나는 많은 것을 찾았지만 그것을 할 수 없었다. aspnet ID를 사용하여 소금을 저장할 수 있습니까? 그렇다면 어떻게?비밀번호를 데이터베이스에 aspnet ID로 저장 하시겠습니까?

My current AspNetUser table My current AspNetUser table

+0

소금과 해시를 연결 한 다음 PasswordHash 열에 저장하면됩니다. –

+0

두 번째 염분을 수행해야하는 특별한 이유가 있습니까? 기본 소금 구현 외에도? – Baserz

답변

0

코드 첫

1. 응용 프로그램 만들기 사용자 클래스는

당신은 IdentityUser에서 상속하는 클래스를 만들어야합니다.

public class ApplicationUser : IdentityUser 
    { 
     public string UserSalt {get;set;}  
    } 

2

그런 다음 당신은 당신의 모델을 조정해야 할 상황 (의는 먼저 EF 코드를 사용하는 가정하자).

애플리케이션 컨텍스트 (너무 ApplicationRole을위한 특별 클래스를 생성 할 수 있습니다) :

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string> {...} 

그냥 경우 응용 프로그램은 ID 공급자입니다^당신의 애플리케이션 컨텍스트는 사용자의 ID 컨텍스트를 나타냅니다.

3. 빌더 모델 속성을 추가

모델을 조정 :

modelBuilder.Entity("IdentityProvider.Models.ApplicationUser", b => 
{ 
... 
    b.Property<string>("UserSalt"); 
... 
} 

4. 관계를 조정을 또한

확인 당신은에서 엔티티 이름으로 IdentityUser했다 어디서나 코드를 ApplicationUser로 전환하는 첫 번째 방법을 코드합니다.

관련 문제