这是我第一次尝试制作使用 Asp.Net Membership 提供程序进行身份验证的 WCF 服务,我尝试做的事情非常简单:
1- 用户将在其中注册和创建帐户的默认 Asp Web 应用程序(使用 Asp.Net Membership 提供程序)
2- 只能由注册会员使用的 WCF 服务
所以我尝试了这个例子:Configuring an ASP.NET Application to Use Membership
我创建了一个默认的 Asp Web 应用程序,Membership 工作正常。
我的问题是配置 WCF App.Config :
所以如果我错了,请大家纠正我
1- 这是正确的例子吗(因为我想稍后使用 WCF 服务从 Winform App 进行 Asp.Net 成员身份验证,每个人都说不要'不要从winform使用它,使用WCF服务不安全)
2-如果是,请在这里纠正我:我需要放入WCF的App.Config中的是
- Connectionstring:指向保存用户的 ASPNETDB.MDF 数据库基础文件
- 会员/个人资料/角色提供者
- 行为
- 绑定:wsHttpBinding
3-如果我奇迹般地直到这里,这是我的 App.Config 文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--_______________________________________ Connection String-->
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=E:\DOCUMENTS\CODE\WCFwsHttpBindingTest\WebAppWsHttpBinding\App_Data\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" />
<!--_________________________________________ Provider-->
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ApplicationServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="MyServiceBehavior"
name="WCFwsHttpBinding.Service1">
<endpoint address =""
binding="wsHttpBinding"
bindingConfiguration="MembershipBinding"
name="ASPmemberUserName"
contract="WCFwsHttpBinding.IService1">
</endpoint>
</service>
</services>
<!--__________________________________________ Behavior-->
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<!--__________________________________________ Binding-->
<bindings>
<wsHttpBinding>
<binding name="MembershipBinding">
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
当我尝试调试时,我收到此错误:
Could not find a base address that matches scheme http for the endpoint with binding WSHttpBinding. Registered base address schemes are [].
非常感谢你的帮助。