NTLM 인증과 함께 문제가 발생했습니다. asp.net에서 아무 문제없이 작동하는 서비스가 있습니다. 그러나 이제는 asp.net 코어에서이 서비스를 사용해야합니다. 나는 허가를 통과 할 수 없다.ASP.NET 코어의 NTLM 인증 WCF가 작동하지 않습니다.
나는이 같은 바인딩을 구성합니다
var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
binding.OpenTimeout = binding.CloseTimeout =
binding.SendTimeout = binding.ReceiveTimeout = TimeSpan.FromMinutes(1);
binding.MaxReceivedMessageSize = 20971520;
binding.MaxBufferPoolSize = binding.MaxBufferSize = 20971520;
binding.ReaderQuotas.MaxArrayLength =
binding.ReaderQuotas.MaxStringContentLength =
binding.ReaderQuotas.MaxBytesPerRead =
binding.ReaderQuotas.MaxNameTableCharCount = 2097152;
binding.TextEncoding = Encoding.UTF8;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
//binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
binding.TransferMode = TransferMode.Buffered;
binding.AllowCookies = false;
는 그럼 난 서비스와
내가 피들러와 비교하여 두 요청 (asp.net 및 코어) 을 열어 그리고 인증 헤더에서 차이를 발견하지만, 암호 설정 파일에 동일한 로그인합니다.---> System.ServiceModel.Security를 얻을 수있는 몇 가지 요청을 할 다음
추가 .MessageSecurityException : HTTP 요청이 클라이언트 인증 체계 'Ntlm'과 함께 인증되지 않았습니다. 서버에서받은 인증 헤더는 'NTLM'입니다.ClientCredentials.Windows.ClientCredential.UserName = service.Login; ClientCredentials.Windows.ClientCredential.Password = service.Password;
ASP.NET :
권한 : NTLM TlRMTVNTUAABAAAAB4I Y ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw의 ==
코어 :
권한 : NTLM TlRMTVNTUAABAAAAB4I I ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw의 ==
내가 작성하려고 에서 코어 변형 대신 asp.net의 헤더를 넣기위한 사용자 정의 동작 BeforeSendRequest()하지만 두 번째 요청에서 클라이언트는 다시 헤더의 핵심 변형을 보내고 NTLM에 대한 동일한 메시지를 다시받습니다.
잘못된 위치에서 실수를 찾으려고 시도 할 수 있습니까?
이것은 완전히 잘못되었을 수 있지만 대소 문자를 구분하는 것처럼 보입니다. HTTP 요청은 클라이언트 인증 스키마와 함께 권한이 없습니다! 'Ntlm'!! 서버로부터받은 인증 헤더는 !! 'NTLM'!! –
나는 그것에 대해 생각했지만 잘못된 암호를 설정하면 asp.net에서 예를 들어 같은 메시지가 나타납니다. – DreamEvil