c#:HTTP请求未经客户端身份验证方案'Ntlm'的授权。从服务器收到的身份验证标头是'NTLM

时间:2018-09-06 14:09:37

标签: c# authentication asp.net-web-api wcf-binding ntlm

我试图创建适配器服务(调用WCF服务的Web API)。我经历了很多标题相似的问题,似乎无法解决问题。谁能帮忙。

除了配置web.config之外,还有其他我想念的东西吗。

我添加了服务参考,并如下更新了web.config

<system.serviceModel>
   <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpEndpoint">
          <security mode="Transport" >
            <transport clientCredentialType="Ntlm" proxyCredentialType="None" realm=""/>
            <message clientCredentialType="UserName" algorithmSuite="Default" />
           </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://service.com/service-Hosted-somewhere-else.svc"
        binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpoint"
        contract="Service" name="BasicHttpEndpoint">
      </endpoint>    
    </client>
  </system.serviceModel>

堆栈跟踪如下

  

System.ServiceModel.Security.MessageSecurityException:HTTP请求未经客户端身份验证方案'Ntlm'的授权。从服务器接收到的认证标头是“NTLM TlRMTVNTUAACAAAAEAAQADgAAAAFgpmiGd2ol9pcGzEAAAAAAAAAAN4A3gBIAAAABgGxHQAAAA9JAE4AVABFAFIATgBBAEwAAgAQAEkATgBUAEUAUgBOAEEATAABAB4AUgBTAEsAUAAtAE0ARQBMAC0ATwBQAFQAOABFAFYABAAqAGkAbgB0AGUAcgBuAGEAbAAuAHMAdQBuAGcAYQByAGQALgBjAG8AcgBwAAMASgBSAFMASwBQAC0ATQBFAEwALQBPAFAAVAA4AEUAVgAuAGkAbgB0AGUAcgBuAGEAbAAuAHMAdQBuAGcAYQByAGQALgBjAG8AcgBwAAUAGABzAHUAbgBnAGEAcgBkAC4AYwBvAHIAcAAHAAgAcg4PLuVF1AEAAAAA”。 ---> System.Net.WebException:远程服务器返回错误:(401)未经授权。 ---> System.ComponentModel.Win32Exception:安全凭据在System.Net.NTAuthentication.GetOutgoingBlob(Byte [] entryBlob,布尔型throwOnError,SecurityStatus&statusCode)的安全包中不可用\ r \ n在System.Net System.Net.NtlmClient.DoAuthenticate(字符串质询,WebRequest WebRequest,ICredentials凭据,布尔值PreAuthenticate)的.NTAuthentication.GetOutgoingBlob(字符串入库Blob)\ r \ n System.Net.NtlmClient.Authenticate(字符串质询,WebRequest) webRequest,ICredentials凭据)\ r \ n在System.Net.AuthenticationManagerDefault.Authenticate(字符串质询,WebRequest请求,ICredentials凭据)\ r \ n在System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest,ICredentials authInfo)\ r \ n在System.Net.HttpWebRequest.CheckResubmitForAuth()\ r \ n在System.Net.HttpWebRequest.CheckResubmit(Exception&e,Boolean&disableUpload)\ r \ n ---内部异常堆栈跟踪的结尾--- \ r \ n在System.Net.Htt pWebRequest

0 个答案:

没有答案