Ich habe mit Problem NTLM-Autorisierung Ich habe Service, die auf asp.net ohne Probleme funktionieren, aber jetzt muss ich mit diesem Service auf asp.net Core arbeiten, und Ich kann keine Autorisierung weitergeben.NTLM-Autorisierung WCF in ASP.NET Core funktioniert nicht
ich so konfigurieren Bindung:
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;
hinzugefügt Dann
ClientCredentials.Windows.ClientCredential.UserName = service.Login;
ClientCredentials.Windows.ClientCredential.Password = service.Password;
Dann mache ich eine Anfrage zu bedienen und
---> System.ServiceModel.Security zu erhalten .MessageSecurityException: Die HTTP-Anfrage ist mit dem Client-Authentifizierungsschema 'Ntlm' nicht autorisiert. Der Authentifizierungsheader , der vom Server empfangen wurde, war "NTLM".
Ich öffnete Fiedler und verglichen zwei Anträge (asp.net und Kern) Und ich fand Unterschied in Authorization-Header, aber Passwort und Login das gleiches in der Konfigurationsdatei.
ASP.NET:
Authorization: NTLM TlRMTVNTUAABAAAAB4I Y ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw ==
Kern:
Authorization: NTLM TlRMTVNTUAABAAAAB4I I ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw ==
ich versucht zu schreiben, benutzerdefiniertes Verhalten, um Header von asp.net anstelle von Core-Variante in BeforeSendRequest(), aber in der zweiten Anfrage Client erneut senden Core-Variante der Kopfzeile und ich wieder die gleiche Nachricht über NTLM
Kann ich versuchen, Fehler an einem falschen Ort zu finden?
Dies könnte völlig falsch sein, aber es scheint, es ist eine Groß-und Kleinschreibung Problem. Die HTTP-Anfrage ist nicht autorisiert mit Client-Authentifizierungsschema !! 'Ntlm' !! Der vom Server empfangene Authentifizierungs-Header war !! "NTLM" !! –
Ich dachte darüber nach, aber ich bekomme die gleiche Nachricht zum Beispiel in asp.net, wenn ich falsches Passwort einstelle – DreamEvil