認証にAsp.Netメンバーシッププロバイダーを使用するWCFサービスを作成するのは初めてです。私がやろうとしていることは非常に簡単です:
1-ユーザーがアカウントを登録および作成するデフォルトのAsp Webアプリ(Asp.Netメンバーシッププロバイダーを使用)
2-登録した会員だけが利用できるWCFサービス
だから私はこの例を試しました:メンバーシップを使用するように ASP.NET アプリケーションを構成する
デフォルトの Asp Web アプリを作成しました。メンバーシップは正常に動作します。
私の問題はWCF App.Configの構成です:
だから、私が間違っている場合は修正してください
1-それは正しい例ですか(後でWinformアプリからのAsp.Netメンバーシップ認証にそのWCFサービスを使用したいので、誰もがドンと言います) 'winform から使用しないでください。WCF サービスを使用するのは安全ではありません
)
- 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 [].
助けてくれてありがとう。