C# winform 자동로그인 구현

안녕하세요
저는 php 개발자인데 어쩌다가 winform으로 구현된 프로그램을 수정해야할이 생겨
혼자 검색하다가 이곳에 질문을 남기게 되었습니다.

이해도가 현저히 낮습니다 이해 부탁드리겠습니다.

결론적으로는 자동로그인을 구현하고싶습니다.
c#윈폼으로 구현된 응용프로그램이 있습니다.
로그인페이지는 webview를 이용합니다.

해당부분은 php로되어있어 웹서버에 쿠키를 이용한 자동로그인을 구현하였습니다.
PC 브라우저로 테스트시 정상동작합니다.

응용프로그램에서 로그인처리를하고
쿠키가 살아있음을 확인하였습니다.
응용프로그램 종료 application.exit(); 하고
다시 실행했을때 쿠키가 남아있지 않더군요

어떻게 해결하면 좋을지… 질문드립니다.
웹뷰는 크롬을 사용하고있습니다.

  1. 윈폼에서 크롬브라우저 실행시 쿠키를 유지할수있는 설정이 존재한가요?
  2. 그렇지 않다면 로그인성공시 윈폼내부 로컬저장소에 쿠키값을 저장하여 webview호출시 해당값을 전달하여 처리를 해야할까요…

부탁드리겠습니다.
감사합니다

1개의 좋아요

안녕하세요. 크롬 뷰라고 하더라도 종류나 구현 방식에 따라 쿠키를 어떻게 유지시킬 것인지에 대한 설정 방법이 천차만별이라, 정확히 어떤 오픈 소스 웹 뷰를 쓰시는지를 알려주셔야 토론이 가능할 것 같습니다.

image

제가 개발한 코드가 아니라…
찾아보면 해당설정인거 같습니다.

아래 링크가 도움이 되실 수 있을 것 같습니다.

c# - How to save cookies in CefSharp - Stack Overflow

4개의 좋아요

CefSharp을 사용 중이신 것 같네요.

c# - How to save cookies in CefSharp - Stack Overflow 의 질답 내용에 따르면, CefSharp 초기화를 할 때 CefSettings.CachePath를 설정하여 파일 시스템 상에 쿠키를 영구적으로 저장하도록 만들어주시면 되지 않을까 싶습니다.

관련된 구체적인 샘플 코드는 https://github.com/cefsharp/CefSharp/blob/5248174f894cba94c11bdf4aefe6b74383326d6c/CefSharp.Example/CefExample.cs#L51 을 참조하시면 도움이 될 것 같습니다. 해당 코드에 붙어있는 설명에 따르면…

            //The location where cache data will be stored on disk. If empty an in-memory cache will be used for some features and a temporary disk cache for others.
            //HTML5 databases such as localStorage will only persist across sessions if a cache path is specified. 
            settings.CachePath = "cache";

기본값은 빈 문자열이거나 null reference 인것 같은데, 이 경우 인메모리에만 보관되므로 프로그램 종료 후 다시 시작이 되면 캐시가 사라지는 것 같습니다.

4개의 좋아요

와우… 로컬에서 테스트해보니 쿠키유지 잘되고있습니다
너무감사드립니다

댓글 감사합니다!! 해결되었습니다.!!