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