我遇到了問題NTLM授權 我有沒有任何問題在asp.net上工作的服務,但現在我需要在asp.net核心上使用此服務,並且我無法通過授權。NTLM授權WCF在ASP.NET核心不起作用
我配置的結合是這樣的:
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;
然後加入
ClientCredentials.Windows.ClientCredential.UserName = service.Login;
ClientCredentials.Windows.ClientCredential.Password = service.Password;
然後我做的服務,並得到
---> System.ServiceModel.Security有一定的要求.MessageSecurityException:HTTP請求未經客戶端身份驗證方案'Ntlm'的授權。從服務器接收到的 身份驗證標頭爲'NTLM'。
我打開提琴手和比較兩個請求(asp.net和核心) 而且我發現在Authorization頭的區別,但密碼和登錄在配置文件中的相同。
ASP.NET:
授權:NTLM TlRMTVNTUAABAAAAB4I Ÿ ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw ==
核心:
授權:NTLM TlRMTVNTUAABAAAAB4I 我 ogAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw ==
我試着寫自定義行爲,以便從asp.net中放入標題,而不是核心變體BeforeSendRequest(),但在第二個請求客戶端再次發送核心變量的頭,我再次得到有關NTLM的相同消息
可能我試圖找到錯誤的地方的錯誤?
這可能是完全錯誤的,但它看起來像是一個區分大小寫的問題。 HTTP請求未經客戶認證方案授權! 'Ntlm'!!從服務器收到的驗證頭是!! 'NTLM'!! –
我想過了,但是如果我設置了錯誤的密碼,我會在asp.net中得到相同的消息 – DreamEvil