测试 ASP.NET 成员资格提供程序在创建用户时重复电子邮件

本文关键字:用户 创建 电子邮件 程序 NET ASP 成员 测试 | 更新日期: 2023-09-27 18:36:30

I' 尝试行使成员资格和角色提供程序方法。到目前为止一切顺利,但我目前被困在创建带有提交的重复电子邮件的用户上。

    [Test]
    public void can_create_user_with_given_duplic_Email()
    {
        MembershipCreateStatus status = new MembershipCreateStatus();
        provider.CreateUser("FirstUser", _Password, _Email, null, null, true, Guid.NewGuid(), out status);
        provider.CreateUser("SecondUser", _Password, _Email, null, null, true, Guid.NewGuid(), out status);
        Assert.AreEqual(MembershipCreateStatus.DuplicateEmail, status);
    }

如您所见,我期待来自会员资格创建状态的重复电子邮件。

运行此测试实际上得到的错误消息如下

can_create_user_with_given_duplic_Email has failed:
  Expected: DuplicateEmail
  But was:  ProviderError

只是提到那个提供商。CreateUser() 工作没有问题。

测试 ASP.NET 成员资格提供程序在创建用户时重复电子邮件

您可以使用

requiresUniqueEmail="false"来允许重复的电子邮件。

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear/>
    <add name="DefaultMembershipProvider" 
         type="System.Web.Providers.DefaultMembershipProvider, 
                  System.Web.Providers, Version=1.0.0.0, 
                  Culture=neutral, 
                  PublicKeyToken=31bf3856ad364e35" 
         connectionStringName="SqlConnection" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         applicationName="MyApp"/>
  </providers>
</membership>