我们有一个 ASP.NET 网站,使用 IIS 中配置的基本身份验证(以及 SSL)对用户进行身份验证。用户帐户存储在 Active Directory 中。目前,当用户尝试导航到该站点时,他们会看到登录提示(由 IIS 抛出),一旦输入了详细信息,如果凭据正确,他们就会被允许进入。所有这些都由 IIS 和 Active Directory 自动处理。但是我们有一个新的要求是在 x 天后使密码过期,如果用户在密码过期后尝试登录,那么我们需要在用户登录后显示“更改密码”对话框。但我不确定这是怎么回事是可能的,因为一旦密码过期,如果我在此之后尝试登录,则会一次又一次地显示登录提示。IIS 或其他地方是否有任何选项可以在密码过期后向用户显示“更改密码”对话框(就像它对 Windows 密码的工作方式一样)?虽然我们可以在密码即将到期时警告用户,并通过自定义页面提供在到期前更改密码的选项,但在密码到期后将用户重定向到“更改密码”对话框也会很好,所以它不需要由客户支持团队手动重置。
问问题
1618 次
1 回答
1
不幸的是,没有简单的方法可以做到这一点。
忘记您可以使用基本身份验证来执行此操作。这将始终卡住并提示登录/密码。
另一方面,如果您使用 ActiveDirectoryMembershipProvider 切换到表单身份验证,则有机会。
机会来自这样一个事实,即您的登录表单可以包含指向允许用户更改密码的页面的附加链接。这样的页面将要求用户提供用户名、旧密码和新密码,并执行 ChangePassword 方法:
不幸的是,广告会员提供商仍然不会告诉您的用户他们的登录名/密码组合是否错误或密码刚刚过期。需要遵循以下方法之一的自定义提供程序:
于 2013-09-04T19:27:59.910 回答