我尝试开发自定义成员资格提供程序,以便与我自己的数据库表一起使用,但我不能。运行项目后,我在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应用程序。你认为我是否必须使用网络安全课程或其他方法?
此致 阿里
答案 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 做到了,然后一切都很好。感谢所有的建议和帮助。