問題が発生しましたNTLMの認証 asp.netで問題なく動作するサービスがありますが、今はasp.netコアでこのサービスを使用する必要があります。私は認可を通過できません。私はこのようなバインディングを構成ASP.NET Coreの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;
は、その後、私は
---> System.ServiceModel.Securityにサービスを提供して取得するためのいくつかの要求を行う
ClientCredentials.Windows.ClientCredential.UserName = service.Login; ClientCredentials.Windows.ClientCredential.Password = service.Password;
を追加しました.MessageSecurityException:クライアント認証スキーム 'Ntlm'でHTTP要求が不正です。サーバーから受信した 認証ヘッダーは「NTLM」でした。
私はシオマネキを開き、2つの要求(asp.netおよびコア)を比較した そして、私はAuthorizationヘッダの違いを見つけましたが、パスワードや設定ファイルに同じログイン。
ASP.NET:
認証:NTLM TlRMTVNTUAABAAAAB4I Y ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADwの==
コア:
認証:私は書くことを試みたNTLM TlRMTVNTUAABAAAAB4I I ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADwの==
Core Variantの代わりにasp.netのヘッダーを挿入するためのカスタム動作BeforeSendRequest()と同じですが、2番目のリクエストでは、クライアントはヘッダのコアバリエーションを再度送信し、NTLMについて同じメッセージを再度返します。
間違った場所で間違いを見つけようとしていますか?
これは完全に間違っている可能性がありますが、大文字と小文字が区別されるようです。クライアント認証方式でHTTPリクエストが不正です! 'Ntlm' !!サーバから受信した認証ヘッダは!! 'NTLM' !! –
私はそれについて考えましたが、間違ったパスワードを設定すると、たとえばasp.netで同じメッセージが表示されます – DreamEvil