ASP.NET FormsAuthentication不使用默认的MembershipProvider

时间:2010-10-13 04:48:40

标签: asp.net-mvc membership-provider

我创建了一个继承自MembershipProvider的BasicMembershipProvider类,在实现时,不会调用ValidateUser。这是我的设置:

的web.config

<membership defaultProvider="BasicMembershipProvider">
  <providers>
    <clear/>
    <add name="BasicMembershipProvider" type="MyMVCProject.Providers.BasicMembershipProvider"/>
  </providers>
</membership>

BasicMembershipProvider.cs

public class BasicMembershipProvider : MembershipProvider
{       
  //THIS FUNCTION NEVER GETS CALLED
  public override bool ValidateUser(string email, string password)
  {
       //Do custom checks.
  }
}

控制器

FormsAuthentication.Authenticate(model.Email, model.Password)

这是用我自己的会员逻辑覆盖MembershipProvider的方法吗?如果是这样,那么为什么每当我调用ValidateUser时都不会调用覆盖的函数FormsAuthentication.Authenticate()

1 个答案:

答案 0 :(得分:7)

AFAIK FormsAuthentication.Authenticate不使用Membership.Validate方法。您必须手动调用Membership.Validate

From MSDN

  

Authenticate方法验证存储在应用程序配置文件的凭据部分中的用户凭据。或者,您可以使用ASP.NET成员身份来存储用户凭据,并调用ValidateUser来验证凭据。