0

認証にAsp.Netメンバーシッププロバイダーを使用するWCFサービスを作成するのは初めてです。私がやろうとしていることは非常に簡単です:
1-ユーザーがアカウントを登録および作成するデフォルトのAsp Webアプリ(Asp.Netメンバーシッププロバイダーを使用)
2-登録した会員だけが利用できるWCFサービス

だから私はこの例を試しました:メンバーシップを使用するように ASP.NET アプリケーションを構成する

デフォルトの Asp Web アプリを作成しました。メンバーシップは正常に動作します。
私の問題はWCF App.Configの構成です:
だから、私が間違っている場合は修正してください
1-それは正しい例ですか(後でWinformアプリからのAsp.Netメンバーシップ認証にそのWCFサービスを使用したいので、誰もがドンと言います) 'winform から使用しないでください。WCF サービスを使用するのは安全ではありません
)

  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