指定的成员资格提供程序名称无效.参数名称:providerName

Mat*_*nde 6 c# nhibernate nunit asp.net-membership .net-4.0

  • .Net4.0
  • MVC 2
  • NHibernate的
  • NUnit的

我正在尝试测试用户创建.根据我的测试,我打电话给以下人员:

MembershipCreateStatus status;
// _session is my current NHibernate session.
var mmp = new MyMembershipProvider(_session);
mmp.CreateUser(username, password, "something@example.com", "", "", true, Guid.NewGuid(), out status);
Run Code Online (Sandbox Code Playgroud)

在这个CreateUser方法中,它得到了这么远:

var user = new MembershipUser(Name, username, providerUserKey, email, passwordQuestion, passwordAnswer, isApproved, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

...在抛出此异常之前:

The membership provider name specified is invalid.
Parameter name: providerName
Run Code Online (Sandbox Code Playgroud)

我将我的名称设置为MyMembershipProvider,并在Web.config中我有这个:

<add name="OnyxMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
  enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
  maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
  applicationName="/" />
Run Code Online (Sandbox Code Playgroud)

还有,我的连接字符串:

<add name="ApplicationServices"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

现在,我猜测问题是我的测试是创建一个SQLite数据库,而web.Config正试图命中我的SqlServer数据库,但我不知道如何继续.

And*_*rry 11

名称不应该与web.config中指定的名称相同吗?

即OnyxMembershipProvider