2016-08-01 2 views
2

IdentityServer3에 대한 POC 작업 중입니다.웹 서버 탐색 이벤트에 대한 IdentityServer3 대체

샘플 앱 WebHost (최소)가 제대로 실행되고 있습니다.

클라이언트 샘플 앱의 경우 wpf 클라이언트 (pkce와 하이브리드)를 사용하고 있습니다.

웹 호스트가 사용자 지정 ExternalRegistrationUserService를 사용하도록 수정 되었기 때문에 하이브리드 예제가 필요합니다.

그러나 하이브리드 클라이언트에 대한 모든 샘플은 콘솔 앱/Windows 서비스에 권장되지 않는 스레딩 모델을 사용하는 웹 서버 탐색 이벤트를 사용합니다.

punchline 질문은 UI 컨트롤에 연결되어 있지 않은 탐색에 해당하는 콘솔 친화적 인 것입니까?

httpwebrequest는 내가 원하는 것을 거의 수행하지만 identityserver3은 인터셉트 할 필요가있는 체인에서 여러 응답을 보내려는 것처럼 보이고 모든 httpclient 또는 httpwebrequest 호출은 첫 번째 응답 만 리턴하려고합니다.

+0

가독성 향상 –

답변

1

recent blog post의 정보를 사용하여 매우 유사한 POC를 작성했습니다. Dominick Baier으로 작성했습니다.

기본적으로이 방법은 리디렉션을 수신하기 위해 새로운 IdentityModel.OidcClient 라이브러리와 로컬 HTTP 수신기의 조합을 사용하는 기본 클라이언트 응용 프로그램을 사용합니다.

OidcClient를 HTTP 수신기와 함께 사용하여 콘솔 응용 프로그램에서 하이브리드 흐름을 사용하는 방법을 보여주는 Dominick의 샘플 중 하나에 기고했습니다. 코드 here을 찾을 수 있습니다.

이 샘플은 사용자가 수행 한 작업을 수행하지만 외부에서 시스템 웹 브라우저가 열리는 것으로 생각합니다. 그러나 OidcClient는 네이티브 클라이언트 내부의 모든 작업을 원할 경우 사용자가 제공 한 WebView도 지원합니다.

+1

멋진 작업! ..... –

+0

지금 보시는 중 – Matt

+0

귀하의 솔루션은 매우 유망합니다. 그것은 실행하고 그것은 웹 브라우저 컨트롤에 대한 필요성을 없애지 만, 예정된 일괄 처리 응용 프로그램 또는 서비스에 대해 마찬가지로 문제가되는 풀 브라우징 된 브라우저 인스턴스에서 process.start를 시작합니다. 내가 생각한 httplistener는 process.start가 http 클라이언트 호출로 대체 될 수 있다면 문제가 해결되었다고 생각합니다. 그런 다음 생각한 UI 스레드 외부에서 작동합니다. 나는 그걸로 팅커 리하고 내가 찾은 것과 돌아가려고 노력할 것이다. – Matt