1

我需要制作自定义会员提供者还是有其他方法?

我有一个使用 ASP.NET Forms Authentication 和 Microsoft SQL Membership Provider 的项目。该网站已完成。我在任何地方都使用此提供程序。(注册、登录、忘记密码等...)

到目前为止,我的网站用户不需要复杂的密码。用户的密码实际上只是别针。用户过去可以选择任何密码作为密码。我对这个网站几乎没有任何限制,因为没有任何数据是私人的或个人的。

但是我收到了新的要求。

以下是新密码要求:

  • 密码长度必须至少为 8 个字符。
  • 必须使用以下 4 种字符类型中的 3 种创建密码:
    • 大写
    • 小写
    • 数字
    • 标点
  • 请勿在密码中使用您的姓名或用户 ID。
  • 以后不要再使用旧密码。
  • 密码必须至少每 60 天更改一次。
  • 密码可能不包含您的用户 ID 或您全名的任何部分。
  • 密码历史保留将禁止使用最后 24 个密码。
  • 用户在任何 6 天内只能更改一次密码。


我意识到我将不得不修改以下所有页面:注册、登录、忘记密码等……幸运的是,我很久以前就停止使用默认控件了。

我很欣赏你的想法。

我的第一个想法是我需要编写一个自定义成员资格提供程序。我不知道如何让标准提供者完成大部分工作。我可以写代码来做。

  • 我要修改 aspnet_membership 表吗?
  • 我应该添加自己的表 aspnet_something 吗?
  • 可以使用用户配置文件表来解决这个问题吗?
  • 我需要自己的 MembershipUser 类吗?


谢谢。

4

1 回答 1

0

您需要监听 ValidatingPassword 事件。

有关如何执行此操作的示例代码,请参阅ASP.NET Membership ChangePassword 控件 - 需要检查以前的密码。

于 2010-09-08T19:34:46.723 回答