默认情况下禁用ASP.NET MVC用户帐户

时间:2015-02-23 22:04:37

标签: asp.net-mvc security

我在MVC 5中使用默认的ASP.NET身份用户管理器。有没有办法允许用户注册,但默认情况下禁用它们?我想让管理员手动批准并启用帐户。

2 个答案:

答案 0 :(得分:1)

将新属性添加到应用程序用户

 public partial class ApplicationUser : IdentityUser
 {
      public Boolean IsApproved { get; set; }
 }

然后你可以在CheckPasswordAsync类中添加实现ApplicationUserManager,覆盖UserManager中的supper方法,如下所示

public override Task<bool> CheckPasswordAsync(ApplicationUser user, string password)
{
        if (!user.IsApproved )
        {
            return Task.FromResult<bool>(false);
        }
        return base.CheckPasswordAsync(user, password);
} 

这种方法的唯一不利之处在于我们得到了&#34;无效的登录尝试&#34;即使是未经批准的用户也会收到消息。

答案 1 :(得分:0)

FX允许您仅允许注册用户登录。有一个标志来检查用户是否已确认他们的电子邮件。该应用程序可以检查此情况并阻止用户登录,直到他们确认他们的电子邮件。在您的情况下,您可以添加另一个标志,并在允许用户登录之前检查管理员是否已批准用户。 您可以参考电子邮件确认代码http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity