如果您在没有电子邮件确认的情况下配置了ASP.NET MVC 5站点,管理员如何重置密码?
我可以编写一个控制台应用程序来重置数据库中的密码,但这似乎效率低下。此外,旧的aspnet_Membership_ResetPassword
存储过程在新标识系统中没有对应的存储过程。
我不确定我是否理解您想要实现的目标。你仍然需要以某种方式将密码发送给用户,那么你会给他们发送一个生成的密码,而不是标准的"按照电子邮件中的链接到一个可以让你选择新密码的页面"方法吗?
此外,您所说的是专门重置一个用户的密码还是重置所有用户密码。如果是后者,那么控制台应用程序就是最好的选择。如果是前者,您可以简单地向某个后台添加一个只有管理员才能访问的视图,让管理员为特定用户执行此功能。
就生成一些随机密码而言,你可以自己操作,但一个简单的网络搜索应该会找到很多方法可供选择。
不过,明智的做法是,电子邮件确认方式是有原因的。它提供了一种相对安全的方式,允许用户在记不住密码时重新访问其帐户。不过,它最重要的功能是,它强制用户实际更改密码,而对于提供的密码,无论是否随机,用户实际上都会使用该密码,而不是在登录后花时间手动更改密码,尤其是现在的密码管理器。这意味着,如果你通过电子邮件发送密码,或者把它写在粘性或其他什么东西上,你现在就有了一个巨大的安全漏洞。