【问题标题】:Wcf basicHttpBinding not working in Windows 8.1 app storeWcf basicHttpBinding 在 Windows 8.1 应用商店中不起作用
【发布时间】:2015-04-10 12:06:33
【问题描述】:

我写了一个Wcf Service,它的配置文件是

  <system.serviceModel>    
      <behaviors>
        <serviceBehaviors>
          <behavior name="MyServiceTypeBehaviors" >
            <serviceMetadata httpGetEnabled="true"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="securityDemo">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="WcfDemo.EmpService"  behaviorConfiguration="MyServiceTypeBehaviors">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:3003/"/>
          </baseAddresses>
        </host>
        <endpoint address="" binding="basicHttpBinding" contract="WcfDemo.IEmpService" bindingConfiguration="securityDemo"/>
      </service>
    </services>
  </system.serviceModel>

这适用于控制台应用程序或 WPF 应用程序。 但是当我为 Windows 8.1 应用程序使用相同的服务时,我得到了这个异常

HTTP 请求未经客户端身份验证方案授权 '谈判'。从服务器收到的身份验证标头是 '协商,NTLM'。

【问题讨论】:

    标签: c# wpf wcf windows-8.1


    【解决方案1】:
    • 在 IIS Local 上部署 WCF 服务(因为 IIS Express 不是那么灵活),设置匿名身份验证并设置 Windows 集成身份验证。
    • 在目标 Win 8 应用程序中进行服务引用。
    • 在使用Service proxy前添加一行标识:

      var client = new ServiceReference1.Service1Client(); client.ClientCredentials.Windows.ClientCredential.UserName = "windows 用户名";
      client.ClientCredentials.Windows.ClientCredential.Password = "用户密码";

    • 调用服务方法

    • 利润

    【讨论】:

    • 我正在通过 Visual Studio 生成 ServiceReference。我尝试使用自托管和 IIS。
    • 我的第一个答案有问题。我忘记在 WCF 中选择您的绑定并使用默认值。使用您的绑定我有同样的错误,但我找到了解决方案并在上面重写了答案。
    • 您的答案有效,但我想使用 System.Net.CredentialCache.DefaultNetworkCredentials 对用户进行身份验证。
    • 我不希望用户键入他的凭据,它应该自动从系统中选择当前用户凭据。
    • 我多次尝试使用 DefaultNetworkCredentials,但没有成功。好像它们什么都没有
    猜你喜欢
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多