2017-02-17 7 views
0

Windows 인증을 사용하는 OWIN/Katana WebAPI가 있습니다. 로컬로 실행하면 내 Windows 자격 증명을 가져갈 수 있습니다. 그러나 WebAPI를 서버/클러스터에 배포하면 로그인 및 암호를 묻는 메시지가 계속 표시됩니다. 심지어이뿐만 아니라 시도OWIN/Katana WebAPI는 Windows 인증을 사용하여 로그인/암호를 계속 묻습니다.

//Set up integrated windows authentication. 
    HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"]; 
    listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication; 

:

나는 현재하여 Startup.cs에 다음이

HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"]; 
    listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate; 

피들러, 나는 서버에 (내 API를 칠 수 있었다 인증 사용. 하지만 다른 응용 프로그램에서 API를 사용하면 자동으로 401 Unauthorized로 돌아옵니다. Windows 인증을 특별히 만든 경우에도 수동 로그인을 요구하는 이유는 무엇입니까?

나는이 기사를 다음 봤는데 : 내 웹 클라이언트 (@LexLi 덕분에) 실패하는 이유

http://www.sbrickey.com/Tech/Blog/Post/AllowAnonymous_for_OWIN_Katana_self_hosted_WebAPIs_using_Kerberos

https://blogs.msdn.microsoft.com/chiranth/2013/09/20/ntlm-want-to-know-how-it-works/

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/enabling-windows-authentication-in-katana

+0

발신자가 사용자 자격 증명을 전달하지 않으면 메시지가 표시됩니다. 적절한 클라이언트 측 코드를 작성해야합니다. –

+0

답장을 보내 주셔서 감사합니다 @ LexLi -이 정상적인 동작이 왜 발생합니까? 클라이언트 컴퓨터의 Windows 로그인 자격 증명이 자동으로 전달되면 안됩니까? 디버그에서 API를 로컬에서 실행했을 때 왜 나에게 프롬프트가 표시되지 않습니까? 어리석은 질문에 대해 유감스럽게 생각합니다. 저는 아직 승인을 처음 받았습니다. – Jacky

+0

특히 코드를 통해 호출 할 때 사용자 자격 증명이 자동으로 전달되지 않습니다. IE를 올바르게 구성하지 않으면 IE도 프롬프트합니다. 당신이 배우기에는 너무 많은 것이 있습니다. –

답변

0

내가 발견. 문제는 API에 있다고 생각했지만 클라이언트에서 내 사용자 자격 증명을 보내지 않은 것으로 나타났습니다. 내 HttpClient에 대한 HttpHandler에 사용자 자격 증명을 추가하고 작동했습니다.

new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true })