代码之家  ›  专栏  ›  技术社区  ›  Sly

具有WCF服务的AspNetMembership提供程序

  •  0
  • Sly  · 技术社区  · 15 年前

    我正在尝试将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>
    

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

    但身份验证过程根本没有启动。请求期间没有对数据库的调用,并且当我尝试在方法上设置以下属性时:

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

    我的访问被拒绝异常。你有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Tanner    15 年前

    试试这个 CodePlex Security Guide , the 如何操作 应用场景 有许多配置选项的详细设置和配置指南,可以帮助您找到丢失的拼图。