작성
·
41
0
강의 쭉 따라하면서 Privacy 권한 별 접근 해보고 있습니다.
틀린 부분이 없고 ,
DB에 계정도 잘 들어가있는데
사이트에서 로그인만 하면
OnPostAsync 함수에서 아이디 조회 쿼리 결과 받는 var result 부분에서
계속 Succeeded가 안뜨네요 ㅠㅠㅠㅠ
답변 2
1
이어서 확인해보았습니다---------
음..
SeedData에서 생성된 아이디로 일반 로그인 처리도 안되어서
Register 통해서 가입해 보았습니다.
로그인은 되고 privacy페이지 접근하니, 권한 비허가 떴습니다.
DB 보니까 user role만 있었고,
DB에서 admin role도 추가하니
privacy 페이지로 접근이 가능했습니다.
SeedData에서 추가
Register 페이지에서 추가
DB에 삽입된 것의 차이 2가지입니다.
1.NormalizedUserName 컬럼값이
SeedData에서는 스트링으로 지정한 값으로 들어감 'Tester'
Register에서는 이메일 주소로 들어감.
'Test@email.com'
Age 속성 여부..(이건 Nullable이라 상관없을듯 합니다.)
SeedData에서 삽입된 것은 Age가 Null,
Register 페이지에서 가입한건 입력한 Age 값 입니다.
이런 차이가 있네요.
강의에서 놓친 부분이 없는지 다시 확인해보겠습니다.
UserName과 Email이 동일해야 하네요..?
아래 SeedData.cs에서 UserName과 Email을 동일한 값, 다른 값으로 하였더니
동일한 값일 때만 로그인이 가능하네요.
DB에는 둘 다 정상으로 insert 되었는데 말이죠
(*찾았습니다)
Identity에서 제공되는 select 시 Where에서 Name의 동일 조건을 따지네요.
이 함수보니까 첫번째 파라미터가 Email이 아니고 userName이어서 그랬었네요.
0
마지막으로 질문이 있습니다.
5강 12:22초에 ApplicationUser의 속성
Email과 UserName 입력 시 "그냥" 복붙해서 사용하셨습니다.
통상 Email과 UserName은 다르게 입력들어올텐데,
기본 제공 함수에서 파라미터가 UserName이고,기본 제공 Select 쿼리에서 Where절이 UserName 동일 여부를 비교하기에 그렇게 하신걸까요?
안녕하세요.개발자park입니다.
기본 제공 함수에서 파라미터가 UserName이고,기본 제공 Select 쿼리에서 Where절이 UserName 동일 여부를 비교하기에 그렇게 하신걸까요?
네 맞습니다.
자동 생성되는 로그인,회원가입 페이지도 Email로 Id를 입력받도록 구성되어있습니다.
그렇기에 인자로 UserName대신, 사용자가 입력한 Email을 사용하였습니다.
Id,NickName등의 추가 Column을 두어서 사용하실 수도 있겠습니다.
예제 사이트로 VFUN을 참고하시면 도움이 되실 겁니다.
https://vfun.valofe.com/membership/signup
감사합니다.
답변 감사합니다!
말씀해주신 인증 속성은 false로 해두었습니다.
아래와 같은 값으로 다시 아이디를 생성해봤습니다.
SQL 개체 탐색기로 삽입 완료 확인했습니다. 작아서 잘 안보이실 것 같은데 이미지 넣어둘게요!
아래는 로그인 시 넘어온 파라미터 값들이고요.
var result 부분에서 계속 false가 나오네요ㅠ
조회 함수 처리 시에 발생하는 쿼리가 콘솔에 찍히는 쿼리를 쿼리창에서 직접 실행해보니 조회는 됩니다.
결과 :
슨생님 도움말씀 부탁드립니다 :)
만약 이 부분이 정상이라고 말씀해주시면,
1강부터 놓친것 없는지 다시 해보려고 합니다!
감사합니다