我有一个具有经典架构的应用程序:UI <--> WCF <--> 业务层 <--> 数据层 <--> 数据库。对于 WCF 服务,我使用用户名/密码身份验证。这些用户名和密码存储在应用程序数据库中。密码配置为定期过期(业务要求)。
我有密码过期的问题。我在我的WCF服务中做了一个操作,负责修改用户密码,但是密码过期后我无法访问,因为认证失败!
我应该如何处理?我是否应该为密码修改创建一个具有特殊身份验证的特殊端点(例如,如果密码是正确的 eben 尽管它已过期,则允许访问)?对于这样一个“小”问题,这听起来像是一个沉重的解决方案。
编辑:也许我应该添加更多上下文。在实现 UserNamePasswordValidator 的类中进行验证。在 validate 方法中,我检查用户是否被锁定、密码是否错误、是否已达到最大登录尝试次数(如果是,我也会锁定用户)以及密码是否已过期。如果其中之一为真,则身份验证失败。也许这不是最好的设计...