如何使用邮递员通过基本身份验证调用WCF Rest服务?

时间:2019-04-05 08:54:13

标签: wcf postman wcf-binding wcf-security

在本文https://docs.microsoft.com/en-gb/dotnet/framework/wcf/feature-details/transport-security-with-basic-authentication之后,我创建了带有基本身份验证的WCF服务。 但是当我使用邮递员调用它时,出现错误(400错误请求)。

如果我使用一个用C#编写的小型应用程序设置ClientCredentials,它会很好地工作。

这是我的服务器代码:

public class DataService : IDataService
{
    public bool GetData()
    {
        return true;
    }
}
[ServiceContract]
public interface IDataService
{
    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = "GetData")]
    bool GetData();
}
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.6.2" />
    <httpRuntime targetFramework="4.6.2"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <bindings>
        <wsHttpBinding>
            <binding name="UsernameWithTransport">
                <security mode="Transport">
                    <transport clientCredentialType="Basic" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
        <services>
            <service name="BasicAuthenticationTest">
                <endpoint 
                    address=""
                    binding="wsHttpBinding"   
                    bindingConfiguration="UsernameWithTransport"  
                    name="BasicEndpoint"  
                    contract="BasicAuthTest.IDataService"/>
            </service>
        </services>
    </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>

enter image description here

我还关闭了Postman中的“ SSL证书验证”和代理

0 个答案:

没有答案