【问题标题】:UserName authentication for WCF WebServiceWCF WebService 的用户名身份验证
【发布时间】:2010-12-14 11:35:55
【问题描述】:

我正在做一场噩梦,试图让它发挥作用。有人可以指出我正确的方向或告诉我哪里出错了吗?

我创建了一个位于LocalMachine\My 的证书。

  • 我有一个控制台应用程序 托管 WCF WebService。
  • 我有一个 ASP.NET 网站连接到 网络服务。

我已遵循此站点以及其他站点和文档上的建议,但似乎缺少某些内容,因为我的 ASP.NET 网站仍然可以在没有身份验证的情况下连接到 WebService。

总结一下:网站连接到网络服务正常,这表明身份验证不起作用,因为我还没有告诉网站连接到网络服务需要哪些安全设置。

提前谢谢你

这里是信息:

控制台应用(托管 WebService)

程序.cs

WebService Host(控制台应用)在

中使用如下代码
ServiceHost host = new ServiceHost(typeof(MyService));
host.Open();

App.Config(缩写)

<services>
  <service behaviorConfiguration="MetaDataBehaviour" name="MyService_Provider.MyService">
    <clear />
    <endpoint address="myService" binding="wsHttpBinding" contract="MyService_Provider.IMyService"
        listenUriMode="Explicit" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8080" />
      </baseAddresses>
    </host>
  </service>
</services>

我的服务提供者

App.Config(缩写)

 <system.serviceModel>
    <bindings />
    <client />
    <services>
      <service behaviorConfiguration="MyService_Provider.Service1Behavior"
        name="MyService_Provider.MyService">
        <endpoint address="" binding="wsHttpBinding" contract="MyService_Provider.IMyService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8732/Design_Time_Addresses/MyService_Provider/Service1/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyService_Provider.Service1Behavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="MyService_Provider.CredentialsValidator,MyService_Provider"/>
            <serviceCertificate findValue="mycert" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

【问题讨论】:

    标签: c# .net wcf wcf-binding wcf-security


    【解决方案1】:

    您尚未为您的服务指定任何安全要求。查看this 文章,了解配置服务以使用证书的示例。

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      相关资源
      最近更新 更多