到期后ASP.NET基本身份验证更改密码选项

时间:2013-09-04 18:59:40

标签: asp.net authentication iis active-directory

我们有一个ASP.NET网站,使用IIS中配置的基本身份验证(以及SSL)对用户进行身份验证。用户帐户存储在Active目录中。目前,当用户尝试导航到该站点时,会向他们显示登录提示(由IIS抛出),一旦输入详细信息,如果凭据正确,则允许他们进入。所有这些都由IIS和Active目录自动完成。但是我们有一个新的要求是在x天之后使密码失效,如果用户在密码过期后尝试登录,那么我们需要在用户登录后显示“更改密码”对话框。但我不知道这是怎么回事是可能的,因为一旦密码过期,如果我尝试在此之后登录,则会一次又一次地显示登录提示。在密码过期后,IIS或其他地方是否有任何选项向用户显示“更改密码”对话框(就像它对Windows密码的工作原理一样)?虽然我们可以在密码即将过期时警告用户,并提供在通过自定义页面到期之前更改密码的选项,但是在用户过期后将用户重定向到“更改密码”对话框也是很好的,所以它不需要由客户支持团队手动重置。

1 个答案:

答案 0 :(得分:1)

不幸的是,有没有这么简单的方法。

忘记您可以使用基本身份验证执行此操作。这将始终卡住并登录/密码提示。

另一方面,如果您使用ActiveDirectoryMembershipProvider切换到Forms身份验证,则有可能。

您的登录表单可以包含指向允许用户更改其密码的页面的附加链接。此类页面将要求用户提供用户名,旧密码和新密码,并执行ChangePassword方法:

How to programmatically change Active Directory password

很遗憾,广告会员提供商仍然不会告诉您的用户他们的登录/密码组合是错误还是密码刚刚过期。需要自定义提供程序遵循以下方法之一:

Validate a username and password against Active Directory?

相关问题