0

这是我第一次尝试制作使用 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中的是

  1. Connectionstring:指向保存用户的 ASPNETDB.MDF 数据库基础文件
  2. 会员/个人资料/角色提供者
  3. 行为
  4. 绑定: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 [].

非常感谢你的帮助。

4

0 回答 0