默认禁用ASP.NET MVC用户帐户

问题描述:

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

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

+0

我看了一下,但更新我的模型后无法'update-database -force'来更改'aspnet_Users'模式。所以然后我看到这个http://typecastexception.com/post/2013/11/11/Extending-Identity-Accounts-and-Implementing-Role-Based-Authentication-in-ASPNET-MVC-5.aspx,并认为我可以只是限制我想要的“验证用户”角色并完成相同的任务。 – 2015-02-24 00:14:10

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

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

然后你就可以添加在ApplicationUserManager类实现CheckPasswordAsync覆盖了晚饭方法UserManager像下面

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

这种方法的唯一缺点是即使对于未经批准的用户,我们也会收到“无效的登录尝试”消息。