【发布时间】:2017-02-24 07:11:04
【问题描述】:
使用 Kentico 10,用户如何使用 c# 以编程方式使密码过期? UserInfo.UserPasswordExpiration 没有设置器(因此只有只读)。我正在导入一堆用户(正在工作),我想强制用户在首次登录时重置密码。
【问题讨论】:
使用 Kentico 10,用户如何使用 c# 以编程方式使密码过期? UserInfo.UserPasswordExpiration 没有设置器(因此只有只读)。我正在导入一堆用户(正在工作),我想强制用户在首次登录时重置密码。
【问题讨论】:
要正确检查和设置,您需要
检查是否启用密码过期:
int num;
bool isEnabled = AuthenticationHelper.IsPasswordExpirationEnabled("Sitename", out num);
然后检查用户上次更改密码的时间:
TimeSpan dateTime = UserInfoProvider.DateTimeNow = MembshipContext.AuthenticatedUser.UserPasswordLastChanged;
int daysSinceLastChange = num - dateTime.Days;
因此,如果daysSinceLastChange 为正值,则密码将在该天数内过期。如果daysSinceLastChange 为负值,则密码将在这些日子到期。
要正确设置它,您需要做一些事情:
UserPasswordLastChanged 值设置为 10 年前在您想要使用户无效的荒谬的值。您可以在导入用户时或通过 API 执行此操作。【讨论】: