ASP.NET MVC自定义成员资格提供程序Web.config错误

时间:2009-07-28 04:46:11

标签: asp.net-mvc security asp.net-membership

我使用LINQ to SQL实现了自定义成员资格提供程序。当我在Web配置中将成员资格提供程序添加到我的asp.net mvc网站时,登录页面停止工作。

我的Web.config设置:

<membership>
  <providers>
  <clear/>
    <add 
      name="MyMembershipProvider" 
      type="MyMembership.MyMembershipProvider"
      connectionStringName="ApplicationServices" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 
      requiresUniqueEmail="false" 
      passwordFormat="Hashed" 
      maxInvalidPasswordAttempts="5" 
      minRequiredPasswordLength="6" 
      minRequiredNonalphanumericCharacters="0" 
      passwordAttemptWindow="10" 
      passwordStrengthRegularExpression="" 
      applicationName="/"/>
  </providers>
</membership>

我得到的错误如下:

分析程序错误消息:找不到默认成员资格提供程序。

来源错误:

Line 53:            <forms loginUrl="~/Account/LogOn" timeout="2880"/>
Line 54:        </authentication>
Line 55:        <membership>
Line 56:            <providers>
Line 57:                <clear/>

我被困在哪里从这里开始。我无法设置断点,因为错误似乎是从主代码中调用的。

我正在使用asp.net mvc默认项目附带的标准会员代码。成员资格提供程序在Web项目中包含的单独程序集中实现。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:26)

尝试在成员资格标记中添加“Default = MyMembershipProvider”。如果您没有指定默认值,它将尝试使用ASP标准。

答案 1 :(得分:3)

你可以试试2件事。第一:调试可能,只需中断所有异常并下载调试符号,包括.NET框架的源代码。

第二:由于您的类型是在另一个程序集中定义的,type中的字符串可能需要是一个程序集限定类型字符串,即它就像

type="MyMembership.MyMembershipProvider, MyAssemblyName"