Q & A

시삽: 레드플러스 님 
게시판 이동:
 제목 : Re : Re : 관리자 권한 인증 실패...
글번호: 1076
작성자: 김민태
작성일: 2022/11/09 오전 10:41:00
조회수: 1618
파일: prgcs.png (57 KB) / 전송수: 728
prgcs.png

드디어 해결했습니다!

귀가후에 이것저것 해보다가 UserId(Account) 클레임 비교를 단순 문자열로 해당 아이디를 입력하니 정상 동작하길래 DotNetNoteSettings의 GetSection값을 못불러오고 있다는 결론을 내렸습니다ㅡ만, 왜 안되는지는 알 수가 없어 또 한참을 헤맸습니다.

저는 책 내용을 기반으로 입력했던지라 경고가 뜨던 IHostingEnvironment 대신 IWebHostEnvironment로 바꾼 상태로 입력한 컨픽빌더를 사용중이었는데, 이걸로도 컨트롤러를 통한 뷰 출력 등은 잘 됐었지만 용도가 달라서? 그런지 Claims에선 작동을 안했던 것 같습니다.

그 뒤로도 이래저래 바꿔봤지만 안돼서 다시 질문을 올리려다 마지막으로 dnn세팅json 내용을 appsettings.json에 값을 넣었더니 정상동작 하길래, 다른건 다 괜찮고 json 파일만 인식을 못하고 있다고 판단, 이쪽으로 검색하니 program.cs에 AddJsonFile 메서드를 입력하는 예제가 있었습니다.

그래서 DotNetNoteV31의 Program.cs를 열어보니 해당 내용이 들어있어서 해결할 수 있었습니다..!

PS - DNN3.1/6 과 하와소3.1/5 받아놓고 조금씩 참고하면서 응용해보고 있습니다. 감사합니다. :D


On 2022-11-08 오후 1:40:00, '레드플러스' wrote:

 

 


안녕하세요.

 

우선,

다음 링크의 Administrators Policy 설정 관련 4단계를 참고해보세요.

 

[1]번 주석부터 [4]번 주석까지 본인이 작성한 소스와 비교해 보세요. 

Administrators policy · VisualAcademy/DotNetNote@fee698d · GitHub

 

로그인 페이지에서 UserId를 Account로 변경하셨나요?

그 부분도 확인해보세요. 

또한,

Admin 컨트롤러에는 Authorize 특성은 딱 한 번만 주면 됩니다. 

[Authorize("Administrators")]

 

나머지 사항은

제 강의 최신 소스를 참고하세요.

https://github.com/VisualAcademy/DotNetNote

https://www.dotnetnote.com/

 

 

감사합니다.

 

 


On 2022-11-08 오전 9:48:00, '김민태' wrote:

 

 


게시판 프로젝트의 공지 올리기 과정 중 Administrators 인증에 실패해서 허용되지 않은 접근Forbidden으로 이동합니다.

POCO 세팅까지 해놔서 로그인 아이디에 따라 버튼 표시여부는 작동하지만, 클릭했을 때 작동하지 않고 인증에 실패합니다. 혹시나 싶어 정책으로 바꿔봐도 안되네요..

[Authorize("Administrators")]
[Authorize(Policy = "Administrators")]

인증을 빼버리거나 Users 정책까지만 허용하면 작동합니다.

services.Configure<DotNetNoteSettings>(Configuration.GetSection("DotNetNoteSettings"));

            services.AddAuthorization(options =>
            {
                options.AddPolicy(
                    "Users", policy => policy.RequireRole("Users"));
                options.AddPolicy(
                    "Administrators",
                    policy => policy.RequireRole("Users")
                    .RequireClaim("Account", Configuration
                    .GetSection("DotNetSettings")
                    .GetSection("SiteAdmin").Value));
            });

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트
  Administrator
  2022-11-09 오후 1:36:47
안녕하세요.

인증 부분이

처음 닷넷코어 1.0 버전 나올 때와

2.1 버전 업데이트되었을 때 크게 변경이되어 혼동이 될 수도 있습니다.

다행히 이전 버전까지 참고하시는 수고를 하시어 찾아내신 것 대단히 잘하신 것 같습니다.

참고로,

DotNetNote 소스는 쿠키 인증을 기본으로 사용하여 우리가  Users 테이블을 관리하지만,

이후로의 강의(Blazor 등등)에서는

ASP.NET Core Identity를 사용하여 인증을 관리해서 DotNetNoteSettings을 사용했던 부분은 전혀 사용하지 않고 있습니다.

감사합니다.

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 조회기능 문의 - 김준호 2022-11-21 1573
  관리자 권한 인증 실패... roles.jpg(107 KB) 김민태 2022-11-08 1728
  Re : 관리자 권한 인증 실패... (2) - 레드플러스 2022-11-08 1590
현재글 Re : Re : 관리자 권한 인증 실패...(1) prgcs.png(57 KB) 김민태 2022-11-09 1618
다음글 모델 바인딩 및 전달 문의 - asp 2022-10-28 1600
 
손님 사용자 Anonymous (손님)
로그인 Home