【发布时间】:2015-02-23 22:04:37
【问题描述】:
我在 MVC 5 中使用默认的 ASP.NET 身份用户管理器。有什么方法可以允许用户注册,但默认情况下禁用它们?我想让管理员手动批准和启用帐户。
【问题讨论】:
标签: asp.net-mvc security
我在 MVC 5 中使用默认的 ASP.NET 身份用户管理器。有什么方法可以允许用户注册,但默认情况下禁用它们?我想让管理员手动批准和启用帐户。
【问题讨论】:
标签: asp.net-mvc security
向应用程序用户添加新属性
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);
}
这种方法的唯一缺点是即使对于未经批准的用户,我们也会收到“无效登录尝试”消息。
【讨论】:
FX 允许您只允许注册用户登录。有一个标志可以检查用户是否已确认他们的电子邮件。该应用程序可以检查这一点并阻止用户登录,直到他们确认他们的电子邮件。在您的情况下,您可以添加另一个标志并在允许用户登录之前检查管理员是否已批准用户。 您可以参考验证码http://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity
【讨论】:
update-database -force 更改aspnet_Users 架构。所以后来我看到了这个typecastexception.com/post/2013/11/11/…,并认为我可以将我想要的内容限制为“经过验证的用户”角色并完成同样的事情。