Wcf 您可以将自定义成员资格提供程序与userNamePasswordValidationMode一起使用吗?

Wcf 您可以将自定义成员资格提供程序与userNamePasswordValidationMode一起使用吗?,wcf,rest,wcf-security,custom-membershipprovider,Wcf,Rest,Wcf Security,Custom Membershipprovider,我看到的每个示例都将默认成员资格提供程序与userNamePasswordValidationMode一起使用,但是如果我有自定义成员资格提供程序,我是否可以在WCF REST服务的ServiceCredentials中为userNamePasswordValidationMode指定MembershipProvider?如果可能的话,以下路线是最佳路线: 创建实现成员资格提供程序的自定义成员资格提供程序 创建实现UserNamePasswordValidator的CustomUserNameP

我看到的每个示例都将默认成员资格提供程序与userNamePasswordValidationMode一起使用,但是如果我有自定义成员资格提供程序,我是否可以在WCF REST服务的ServiceCredentials中为userNamePasswordValidationMode指定MembershipProvider?如果可能的话,以下路线是最佳路线:

  • 创建实现成员资格提供程序的自定义成员资格提供程序

  • 创建实现UserNamePasswordValidator的CustomUserNamePasswordValidator并重写Validate方法

  • 在Validate方法中,验证数据库中是否存在用户

  • 我遇到的问题是,如果我的服务中有一个登录方法,并且它是从带有url的web浏览器中调用的,那么我如何获得用户名和密码。假设用户名和密码可以输入网页,也可以来自智能设备应用程序(android、iphone等)

    您应该能够: [HowtuseNondefaultMembershipProvider][1]在步骤1中,页面有两个附加链接,第一个链接显示如何构建成员资格提供程序类,第二个链接显示必要的配置条目。当第二个链接谈到指定默认提供程序时,您实际上可以在配置中指定任意数量的提供程序,其中一个恰好是默认提供程序:

    <system.web>
        <membership defaultProvider="SqlProvider">
            <providers>
                <clear />
                <add name="SqlProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="MySqlConnection"
      applicationName="MyApplication"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="true"
      requiresUniqueEmail="true"
      passwordFormat="Hashed" />
                <add name="MyProvider"
                         type="MyCompany.MyNamespace.MyMembershipProvider" />
            </providers>
        </membership>
    </system.web>
    
    在自定义提供程序类中,您将实现ValidateUser方法。这可能包含验证用户名和密码(传递给方法)所需的任何逻辑


    [1] :to:使用WCF身份验证服务的非默认成员资格提供商

    Steve,我想你的链接搞乱了。
    e.Authenticated = Membership.Providers["MyProvider"].ValidateUser(e.UserName, e.Password);