我遇到了问题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