• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

로그인에서 받아온 Session을 활용하고 자 할 때

24.05.28 19:51 작성 조회수 139

0

안녕하세요 선생님

자주... 문의드려 죄송합니다.

  1. 로그인에서 가져온 Session 값을 활용하는 방법

  2. DAL 부분의 활용 여부

  1. 로그인에서 가져온 Session 값을 활용하는 방법

        public async Task<IActionResult> GetUser(GetUserDTO getUserDTO)
        {
            if (ModelState.IsValid)
            {

            }
            else
            { 
                return Redirect("/login/SearchUserId");
            }
            GetUserResponseDTO dto = await loginService.GetUser(getUserDTO);
            HttpContext.Session.Set("LoginUser", dto);
            return Redirect("/home/index");
        }

"LoginUser"으로 세션값을 사용하는 것은 이해했습니다.

 

controller

        public async Task<IActionResult> GetUserList ()
        {
            if (ModelState.IsValid)
            {

            }
            else
            {
                return Redirect("/home/UserList");
            }
            GetUserResponseDTO ? user = 
            HttpContext.Session.Get<GetUserResponseDTO>("LoginUser");

            GetUserListResponseDTO dto = await UserListService.GetUserList();
            return Redirect("/home/index");
        }

service

        public async Task<GetUserListResponseDTO> GetUserList(GetUserListDTO getUserListDTO)
        {
            var configuration = new MapperConfiguration(cfg => { });
            Mapper mapper = new Mapper(configuration);

            Dictionary<string, object> dc = mapper.Map<GetUserListDTO, 
            Dictionary<string, object>>(getUserListDTO);

            ProcCall procCall = new ProcCall();
            DataTable dt = await procCall.RequestProcedure("SP_UserList", dc);

            GetUserListResponseDTO dto = new GetUserListResponseDTO();
            return dto;


        }

구현하고자 하는 내용.

로그인 해서 나온 데이터를 활용하여 조회 화면을 구성하고자 함

A 등급을 가진 사람한테 -> A-1 화면만 조회하도록 구현하고자 합니다.

Session 값을 가져와서 구현하고자 했는데.. 그럼 DTO를 거치면 안 될까요...?

 

  1. DAL 부분의 활용 여부

SP_ 형식을 차용하는데 DAL.Mapper와 DAL.Model 추가적인 사용은 필요가 없을 것 같습니다...?

DB와 소통하는 부분으로만 남겨도 될까요?

 

답변 1

답변을 작성해보세요.

1

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

1.만들기 나름입니다.

DB에서 권한조회후 if문으로 분기시키거나 또는 회원정보에 권한을 담아 Session에 저장 할 수도 있겠습니다.

 

정석으로 하는 방법은 아래에 해당합니다.

키워드는 authorization claim입니다.

https://www.google.com/search?q=authentication+claim&oq=authentication+claim&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQABgTGIAEMggIAhAAGBMYHjIICAMQABgTGB4yCggEEAAYDxgTGB4yCggFEAAYBRgTGB4yCggGEAAYBRgTGB4yCggHEAAYBRgTGB4yCggIEAAYBRgTGB4yCggJEAAYBRgTGB7SAQg3Njc5ajBqN6gCALACAA&sourceid=chrome&ie=UTF-8

 

https://learn.microsoft.com/en-us/aspnet/core/security/authorization/claims?view=aspnetcore-8.0

해당 내용은 asp.netcore강의가 아니지만 2주안으로 신규강의로 출시될 예정입니다.

2.넵.

감사합니다.

wltn07551님의 프로필

wltn07551

질문자

2024.05.29

설명 감사합니다!!

강의 나오면 꼭 수강하겠습니다!

채널톡 아이콘