具有WCF服务的AspNetMembership提供商

时间:2010-04-07 08:22:00

标签: wcf security authentication authorization membership

我正在尝试将AspNetMembershipProvider配置为用于在使用basicHttpBinding的WCF服务中进行身份验证。我有以下配置:

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  <bindings>
    <basicHttpBinding>
      <binding name="basicSecureBinding">
        <security mode="Message"></security>
      </binding>
    </basicHttpBinding>
  </bindings>
  <behaviors>
      <serviceBehaviors>      
        <behavior name="MyApp.Services.ComputersServiceBehavior">
          <serviceAuthorization roleProviderName="AspNetSqlRoleProvider" principalPermissionMode="UseAspNetRoles" />
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider"/>
          </serviceCredentials>
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>

      </serviceBehaviors>
  </behaviors>
  <services>
      <service behaviorConfiguration="MyApp.Services.ComputersServiceBehavior" name="MyApp.Services.ComputersService">
          <endpoint binding="basicHttpBinding" contract="MyApp.Services.IComputersService" />
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
  </services>
</system.serviceModel>

已启用角色并已配置成员资格提供程序(其适用于网站)。

但是根本不会激活身份验证过程。请求期间没有数据库的calles,当我尝试在方法上设置以下属性时:

 [PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
 public bool Test()
 {
     return true;
 }

我正在获取访问被拒绝的异常。有任何想法如何解决它?

1 个答案:

答案 0 :(得分:3)

尝试此CodePlex Security Guide如何使用应用程序方案有详细的设置和配置指南,其中包含许多可帮助您找到丢失的配置选项你的谜题。