강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

JU Heo님의 프로필 이미지
JU Heo

작성한 질문수

ASP.NET Core MVC 기본편[ASP.NET Core Identity8]

5)ASP.NET Core Identity에 ROLE 추가

로그인 시 왜 계속 조회된 아이디가 없을까요ㅠ

작성

·

41

0

강의 쭉 따라하면서 Privacy 권한 별 접근 해보고 있습니다.

 

틀린 부분이 없고 ,

DB에 계정도 잘 들어가있는데

사이트에서 로그인만 하면

OnPostAsync 함수에서 아이디 조회 쿼리 결과 받는 var result 부분에서

 

계속 Succeeded가 안뜨네요 ㅠㅠㅠㅠ

 

 

답변 2

1

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요.개발자park입니다.

5강 23:04~23:14초 까지의 내용을 반영하셨는지 확인해주세요.

감사합니다.

JU Heo님의 프로필 이미지
JU Heo
질문자

답변 감사합니다!

말씀해주신 인증 속성은 false로 해두었습니다.

 

image.png

 

아래와 같은 값으로 다시 아이디를 생성해봤습니다.

image.png

 

SQL 개체 탐색기로 삽입 완료 확인했습니다. 작아서 잘 안보이실 것 같은데 이미지 넣어둘게요!

image.png

 

아래는 로그인 시 넘어온 파라미터 값들이고요.

image.png

 

var result 부분에서 계속 false가 나오네요ㅠ

 

조회 함수 처리 시에 발생하는 쿼리가 콘솔에 찍히는 쿼리를 쿼리창에서 직접 실행해보니 조회는 됩니다.

image.png

 

결과 :

image.png

 

슨생님 도움말씀 부탁드립니다 :)

 

만약 이 부분이 정상이라고 말씀해주시면,

1강부터 놓친것 없는지 다시 해보려고 합니다!

감사합니다

 

JU Heo님의 프로필 이미지
JU Heo
질문자

이어서 확인해보았습니다---------

음..
SeedData에서 생성된 아이디로 일반 로그인 처리도 안되어서

Register 통해서 가입해 보았습니다.

 

로그인은 되고 privacy페이지 접근하니, 권한 비허가 떴습니다.

DB 보니까 user role만 있었고,

DB에서 admin role도 추가하니

privacy 페이지로 접근이 가능했습니다.

 

SeedData에서 추가

Register 페이지에서 추가

DB에 삽입된 것의 차이 2가지입니다.

 

1.NormalizedUserName 컬럼값이

SeedData에서는 스트링으로 지정한 값으로 들어감 'Tester'

 

Register에서는 이메일 주소로 들어감.

'Test@email.com'

 

  1. Age 속성 여부..(이건 Nullable이라 상관없을듯 합니다.)
    SeedData에서 삽입된 것은 Age가 Null,
    Register 페이지에서 가입한건 입력한 Age 값 입니다.

    이런 차이가 있네요.
    강의에서 놓친 부분이 없는지 다시 확인해보겠습니다.

 

 

 

 

JU Heo님의 프로필 이미지
JU Heo
질문자

UserName과 Email이 동일해야 하네요..?

아래 SeedData.cs에서 UserName과 Email을 동일한 값, 다른 값으로 하였더니

동일한 값일 때만 로그인이 가능하네요.

image.png

 

DB에는 둘 다 정상으로 insert 되었는데 말이죠

image.png

 


(*찾았습니다)

Identity에서 제공되는 select 시 Where에서 Name의 동일 조건을 따지네요.

 

image.png

 

이 함수보니까 첫번째 파라미터가 Email이 아니고 userName이어서 그랬었네요.

개발자Park님의 프로필 이미지
개발자Park
지식공유자

해결되셨다니 다행입니다.

말씀하신대로 userName도 Email과 동일하게 변경해주시면 됩니다.

감사합니다.

0

JU Heo님의 프로필 이미지
JU Heo
질문자

마지막으로 질문이 있습니다.

 

5강 12:22초에 ApplicationUser의 속성

Email과 UserName 입력 시 "그냥" 복붙해서 사용하셨습니다.

 

통상 Email과 UserName은 다르게 입력들어올텐데,

 

기본 제공 함수에서 파라미터가 UserName이고,기본 제공 Select 쿼리에서 Where절이 UserName 동일 여부를 비교하기에 그렇게 하신걸까요?

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요.개발자park입니다.
기본 제공 함수에서 파라미터가 UserName이고,기본 제공 Select 쿼리에서 Where절이 UserName 동일 여부를 비교하기에 그렇게 하신걸까요?
네 맞습니다.

자동 생성되는 로그인,회원가입 페이지도 Email로 Id를 입력받도록 구성되어있습니다.

image.png


그렇기에 인자로 UserName대신, 사용자가 입력한 Email을 사용하였습니다.
Id,NickName등의 추가 Column을 두어서 사용하실 수도 있겠습니다.

예제 사이트로 VFUN을 참고하시면 도움이 되실 겁니다.
https://vfun.valofe.com/membership/signup
감사합니다.

JU Heo님의 프로필 이미지
JU Heo

작성한 질문수

질문하기