在MVC 4中创建自定义成员资格提供程序始终出错

时间:2012-11-16 22:11:06

标签: asp.net-mvc asp.net-mvc-4 membership-provider

我尝试开发自定义成员资格提供程序,以便与我自己的数据库表一起使用,但我不能。运行项目后,我在web.config自定义成员资格提供程序行上看到了红色错误行。 :( type="Mvc4ApplicationTest2.Models.CustomMembershipProvider"我发现文章说我要在web.config中添加以下行,我做了。

add key="enableSimpleMembership" value="false"
add key="autoFormsAuthentication" value="false" 

现在应用程序运行:)但是在进入登录页面并点击提交后我得到新的错误,提示我这样:

To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".

我再次搜索并发现一些文章说我必须在web.config中添加前一行但是真值!! add key="enableSimpleMembership" value="true" 我很困惑。 ?( 那我该怎么办?大家能帮帮我吗? 和其他问题,我想使用标准的,强大而有用的方法来保护我的Web应用程序。你认为我是否必须使用网络安全课程或其他方法?

此致 阿里

2 个答案:

答案 0 :(得分:3)

以下是我在MVC 4项目的Web.config文件中注册自定义成员资格提供程序的方法:

<membership defaultProvider="MyCustomMembershipProvider">
    <providers>
        <clear />
        <add name="MyCustomMembershipProvider" type="MyProject.MyCustomMembershipProvider, MyProject" connectionStringName="MyConnectionString" />
    </providers>
</membership>

请注意,“MyProject.MyCustomMembershipProvider”应该是您的成员资格类的完全限定路径,“MyProject”是其所包含的程序集的名称(通常是您的项目名称)。

还要确保您的会员提供者类扩展了MembershipProvider,如下所示:

public class MyCustomMembershipProvider : MembershipProvider
{
    // Code here
}

我的Web.config中没有'enableSimpleMembership'或'autoFormsAuthentication'行。

希望这有帮助!

答案 1 :(得分:2)

经过大量搜索并阅读了很多文章,我终于找到了。那是个愚蠢的错误。我曾经从 System.Web.Security.MembershipProvider 继承。所以我对需要 ExtendedMembershipProvider 的实现提出了错误。所以我用 WebMatrix.WebData.ExtendedMembershipProvider 做到了,然后一切都很好。感谢所有的建议和帮助。