我创建了一个继承自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()
?
答案 0 :(得分:7)
AFAIK FormsAuthentication.Authenticate
不使用Membership.Validate
方法。您必须手动调用Membership.Validate
。
Authenticate方法验证存储在应用程序配置文件的凭据部分中的用户凭据。或者,您可以使用ASP.NET成员身份来存储用户凭据,并调用ValidateUser来验证凭据。